我知道如何制作?动态表格?来自文档:
http://wtforms.simplecodes.com/docs/1.0.2/specific_problems.html#dynamic-form-composition
我需要的是能够创建动态参数化表单,我的意思是什么? 这是场景,我有两个数据库表:
table Category and table SubCategory.
every Category may have different number of SubCategories
基于category_id,我必须提取所有子类别(其中每个项目都是生成表单的1行)。子类别不能编辑,它们仅用于显示,sub_category_id必须是表格的一部分(即作为数据提交)。
表格:
Category name
SubCategory1 : [ .... ] <== text field for quantity
SubCategory2 : [ .... ] <== text field for quantity
SubCategory3 : [ .... ]
.......
SubCategoryN : [ .... ]
再次,category_id是决定表单创建的参数,即category_id是我在其上进行数据库查询的参数,提取所有子类别并为每个子类别构建一个FORM字段。 一个项目看起来像(伪代码):
{{subat.name}} <input id={{subcat.id}}> quantity </input>
我该怎么做?
我想我有一些使用BaseForm的解决方案。当我觉得它有效时会发布它。但是不要让你阻止你打印其他解决方案。
这是简化版。到目前为止似乎有效。 (尚未测试表格提交)。
def build_form(self, id):
items = db.session.query(Blah).filter_by(id=id)
fields = {}
data = {}
for it in items :
field = StringField(render_kw={ 'xname' : it.name })
fields[name] = field
data[name] = ""
form = BaseForm(fields)
form.process(obj=data)
return form
重要的是你必须用epmty数据项调用.process(),否则一切都会崩溃。 :),花了我一段时间才弄明白。
hth ..如果你有更好的解决方案,请不要犹豫发布。