考虑web2py python Web框架中的2个表。
默认auth_user
和这一个:
b.define_table(
'artwork',
Field('user_id', 'reference auth_user', required=False),
Field('name'),
Field('description', 'text')
)
现在,当我(appadmin)进入数据库管理时,我希望user_id
是可选的。如果我将选择下拉为空,当手动输入图稿表中的条目时,它会显示:“值不在数据库中”,它与required=False
语句相关联。
我希望能够插入没有user_id
有人可以帮我解决这个问题吗?很多
答案 0 :(得分:6)
创建引用字段时,默认情况下会获得requires=IS_IN_DB(...)
验证程序。 requires
属性在表单级别强制执行,而required
属性在DAL级别强制执行。要覆盖默认的表单验证程序,您可以执行以下操作:
Field('user_id', 'reference auth_user', requires=None)
或者,
Field('user_id', 'reference auth_user',
requires=IS_EMPTY_OR(IS_IN_DB(db, 'auth_user.id',
db.auth_user._format)))
答案 1 :(得分:0)