我想使用WTForms在表格中呈现表单.似乎TableWidget可以解决这个问题,但是我能让它工作的唯一方法如下:
from wtforms import Form, TextField, widgets
class User(Form):
user = TextField('User')
email = TextField('Password')
widget = widgets.TableWidget(with_table_tag=False)
user = User()
print user.widget(user)
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪(print user.widget(user)部分)根据文档,我应该能够说:
class User(Form):
user = TextField('User', widget=widgets.TableWidget)
email = TextField('Password', widget=widgets.TableWidget)
user = User()
for form_field in user:
print form_field
Run Code Online (Sandbox Code Playgroud)
但是,这会回来 TypeError: __str__ returned non-string (type TableWidget)
当我替换用户时,发送电子邮件至:
user = TextField('User')
email = TextField('Password')
Run Code Online (Sandbox Code Playgroud)
当然,WTForms渲染按预期工作.
这是如何运作的?
在文档中它说了以下内容TableWidget
将字段列表呈现为一组具有 th/td 对的表行。
您将其与单个字段而不是字段列表关联。如果您查看代码,则__call__方法需要TableWidget调用一个参数field,但它会将其视为iterable生成 html 字符串的参数。
| 归档时间: |
|
| 查看次数: |
1631 次 |
| 最近记录: |