web2py - exiger des valeurs sélectionnées à partir déroulantes valident db

StackOverflow https://stackoverflow.com/questions/1584909

  •  22-09-2019
  •  | 
  •  

Question

J'ai un membre de la table qui comprennent SQLField("year", db.All_years)

et une table All_years comme suit:

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

et sont contraintes:

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

Le problème est quand je sélectionne une année dans la liste déroulante la valeur de la colonne de l'année est l'identifiant de l'année, et non pas la valeur de l'année, par exemple: si l'année 2009 a db id = 1 la valeur de l'année en dB égale = 1 pas égal 2009 .

Je ne comprends pas pourquoi.

Était-ce utile?

La solution

Je vois votre projet progresse bien!

Le validateur est IS_IN_DB(dbset, field, label). Donc, vous devriez essayer:

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

pour avoir une bonne étiquette dans la liste déroulante.

de votre table il semble que vous préférez choisir un intervalle plutôt que l'année commençant, dans ce cas, vous pouvez utiliser ceci:

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

qui affiche, par exemple, « 1980-1985 », et ainsi de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top