我在我的crud表单中使用自定义小部件,如下所示:
{{=form.custom.begin}}
{{if condition:}}
{{=form.custom.widget.field1}}
{{pass}}
{{=form.custom.submit}}
{{=form.custom.end}}
field1与auth_user表有关系。在我的控制器中,我有:
form.custom.widget['field1'] = dropdown
if not condition:
db.admission.field1.readable = db.admission.field1.writable = False
db.admission.field1.default = auth.user.id
我希望窗口小部件仅在条件为真时显示。如果条件不成立,我希望field1默认为当前登录用户。但是,当条件不成立时,我得到错误:
field1 error: value not in database
我做错了什么?
答案 0 :(得分:2)
在创建表单之前设置readable
和writable
属性 - 在这种情况下,field1
将自动从表单中排除,您不必费心创建自定义表单并明确包含/排除它。