web2py,一对多,不需要关系

PyW*_*ign 2 python web2py

考虑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

有人可以帮我解决这个吗?多谢

Ant*_*ony 6

创建引用字段时,默认情况下它会获得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)