Web2py: richiedono i valori a discesa selezionati Convalida da DB
Domanda
Ho un membro del tavolo che include SQLField("year", db.All_years)
e la tabella all_years come segue:
db.define_table("All_years",
SQLField("fromY","integer"),
SQLField("toY","integer")
)
E i vincoli sono:
db.member.year.requires = IS_IN_DB(db, 'All_years.id','All_years.fromY')
Il problema è quando seleziono un anno dal discesa Il valore della colonna dell'anno è l'ID dell'anno, non il valore dell'anno ad es. Se l'anno 2009 ha db ID = 1 Il valore dell'anno in db uguale = 1 non uguale 2009.
Non capisco perché.
Soluzione
Vedo che il tuo progetto sta progredendo bene!
Il validatore è IS_IN_DB(dbset, field, label)
. Quindi dovresti provare:
db.member.year.requires = IS_IN_DB(db, 'All_years.id', '%(fromY)d')
Per avere un'etichetta corretta nell'elenco a discesa.
Ora dal tuo tavolo sembra che preferiresti scegliere un intervallo piuttosto che solo l'anno iniziale, in quel caso puoi usarlo:
db.member.year.requires = IS_IN_DB(db, 'All_years.id', '%(fromY)d to %(toY)d')
Ciò mostrerà, ad esempio, "dal 1980 al 1985" e così via.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow