Frage

Ich habe ein Tabellenmitglied, das einbezieht SQLField("year", db.All_years)

und All_years Tabelle wie folgt:

db.define_table("All_years",
  SQLField("fromY","integer"),
  SQLField("toY","integer")
  )

und Einschränkungen sind:

db.member.year.requires = IS_IN_DB(db, 'All_years.id','All_years.fromY')

Das Problem ist, wenn ich ein Jahr aus der Dropdown -Down -Down -Stufe ausgewählt habe. Die Spalte des Jahres ist die ID des Jahres, nicht der Jahreswert z. B. wenn Jahr 2009 db id = 1 Der Wert des Jahres in DB gleich = 1 nicht gleich 2009.

Ich verstehe nicht warum.

War es hilfreich?

Lösung

Ich sehe, dass Ihr Projekt gut voranschreitet!

Der Validator ist IS_IN_DB(dbset, field, label). Sie sollten also versuchen:

db.member.year.requires = IS_IN_DB(db, 'All_years.id', '%(fromY)d')

um ein korrektes Etikett in Ihrer Dropdown-Liste zu haben.

Nun aus Ihrem Tisch aus sieht es so aus, als ob Sie lieber ein Intervall als nur das Anfangsjahr auswählen möchten, in diesem Fall können Sie dies verwenden:

db.member.year.requires = IS_IN_DB(db, 'All_years.id', '%(fromY)d to %(toY)d')

Dies zeigt beispielsweise "1980 bis 1985" und so weiter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top