Web2py表单字段选项

时间:2011-07-06 13:10:03

标签: forms field web2py readonly

我正在使用web2py表单,我希望某些字段仅对用户可见(已修复,无法编辑)。我尝试制作可编辑,可写,只读的各种组合,但没有用。我也查看了web2py书,但这似乎也不够。如果有人能告诉我如何做到这一点会很棒。

1 个答案:

答案 0 :(得分:2)

您的意思是某些字段对所有访问者都可见,某些字段只有在登录后才可见?

如果是这种情况,请有条件地构建表单:

form_fields = [
  Field('pubfield'),
  Field('pubfield2')
]

if auth.user: # This is true if the end-user is logged in and you're using the built-in auth
  form_fields.append(Field('private_field'))

return dict(form=FORM(form_fields))

除非您不是在谈论登录用户,而只是想让字段可见,但不能编辑。然后,像你试过的那样使用writable = False,但我认为你必须使用crud.create / crud.update或SQLFORM / SQLFORM.factory(后者不需要数据模型)

SQLFORM.factory(Field('my_readable_field', writable=False))

如果表单基于数据库,您可以使用CRUD(如果您不使用身份验证,则需要修改CRUD的设置,以便可以访问CRUD表单)

crud.create(db.some_table)

SQLFORM(db.some_table)