web2py - требует выбранных раскрывающихся значений, подтверждающих DB
Вопрос
У меня есть участник таблицы, который включает 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')
Проблема заключается в том, что я выбираю год после раскрывающегося списка. Столбец стоимости года является идентификатором года, а не значением года, например: если в 2009 году есть DB ID = 1 Значение года в DB равно = 1 не равно 2009.
Я не понимаю, почему.
Решение
Я вижу, что ваш проект прогрессирует хорошо!
Валидатор есть 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 год" и т. Д.