web2py - 要求从db验证选定的下拉列表值

时间:2009-10-18 13:38:18

标签: python web2py

我有一个包含SQLField("year", db.All_years)

的表格成员

和All_years表如下:

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

和约束是:

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

问题是,当我从下拉列表中选择一年时,年份列的值是年份的id,而不是年份值,例如:如果2009年有db id = 1,则db等于1的年份值不等于2009年

我不明白为什么。

1 个答案:

答案 0 :(得分:2)

我看到你的项目进展顺利!

验证器为IS_IN_DB(dbset, field, label)。所以你应该尝试:

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

在下拉列表中添加正确的标签。

现在从你的表中看起来你宁愿选择一个间隔而不仅仅是开始年份,在这种情况下你可以使用它:

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

将显示“1980年至1985年”,依此类推。