web2py:crud表单自定义小部件条件显示/隐藏

时间:2012-02-20 23:23:51

标签: web2py

我在我的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

我做错了什么?

1 个答案:

答案 0 :(得分:2)

在创建表单之前设置readablewritable属性 - 在这种情况下,field1将自动从表单中排除,您不必费心创建自定义表单并明确包含/排除它。