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