除了在表单上循环之外,还有一种快速的方法 - 在定义表时disable
输入字段吗?
将字段设置为writable=False
会显示数据,但不会显示在输入字段中。
disable=True
之类的东西会很好。
答案 0 :(得分:1)
您可以自定义字段的小部件:
db.define_table('mytable',
Field('myfield', type='string',
widget=lambda f, v: SQLFORM.widgets.string.widget(f, v, _disabled=True)))
但请注意 - 提交表单时,浏览器不会发送已停用字段的任何数据,但SQLFORM
仍会期望值(因为writable=True
)。因此,如果您有一个需要值的验证器,则需要一种解决方法(例如,在表单处理或定义自定义验证器之前在request.post_vars
中设置字段的值)。