好的 - 我知道这已被发布但我仍然在应用一些解释时遇到一些麻烦。这在此处作为" Dynamic Form Composition"的一部分提及。 http://wtforms.simplecodes.com/docs/1.0.1/specific_problems.html
我想通过sqlalchemy从我的postgres数据库中存储的用户列表中动态创建表单:
for user in Users:
user = SelectField('user', coerce=int)
它就是这样 - 只需创建一组下拉列表表单元素,每个元素都有用户名,这样我就可以在以后获得每个用户的数据(form.user.data)。在下拉列表中填充数据很容易 - 它是静态信息。
现在如果不使用WTForms - 这很简单,我可以在Jinja2中完成所有这些操作。但是,由于我用WTForms定义了我的表格FIRST,我遇到了麻烦。
这会回到我发布的链接。它显示:
def my_view():
class F(MyBaseForm):
pass
F.username = TextField('username')
for name in iterate_some_model_dynamically():
setattr(F, name, TextField(name.title()))
form = F(request.POST, ...)
假设我的表单是在forms.py中定义的,jinja2在网页中呈现的views.py和html中的视图无法显示给用户。
如果有人有一个更真实的例子适用它将非常感激。与此同时,我会继续乱砍。