Python Wtforms表单,访问嵌入式Formfield的语法

Python Wtforms表单,访问嵌入式Formfield的语法,python,flask,wtforms,Python,Flask,Wtforms,尝试填充Wtformform字段,将数据从mongo db数据库中取出,然后将其交给jinja/flask,为我正在构建的REST系统创建一个可编辑的预填充表单 我的表格结构: class ProjectForm(Form): name = TextField("Name of Project") workflow =FieldList(TextField(""), min_entries=5) class InstituteForm(Form): insti

尝试填充
Wtform
form字段,将数据从mongo db数据库中取出,然后将其交给jinja/flask,为我正在构建的REST系统创建一个可编辑的预填充表单

我的表格结构:

class ProjectForm(Form):
    name = TextField("Name of Project")     
    workflow =FieldList(TextField(""), min_entries=5)

class InstituteForm(Form):
    institue_name = TextField("Name of Institue")
    email = FieldList(TextField(""), min_entries=3)
    project_name = FormField(ProjectForm)
    submit = SubmitField("Send")`
我可以使用以下语法预先填充字段列表:

form = InstituteForm(institue_name="cambridge",
                     email=["email@gmail", "email@gmail"])
但是,我无法理解预填充包含表单对象的
FormField
的语法

首先,我创建一个项目表单:

p = ProjectForm(name=" test", workflow=["adadadad", "adasdasd", "adasdadas"])
&现在我正试图将其添加到
InstituteForm
表单中

我试过:

form = InstituteForm(institue_name=store_i,
                     project_name=p,
                     email=store_email)
我得到的html输出:

上载的示例输出[,没有足够的点数将图像发布到堆栈溢出

我尝试过如下语法:

form = InstituteForm(institue_name=store_i,
                     project_name.name=p,
                     email=store_email)

甚至

form = InstituteForm(institue_name=store_i,
                     project_name=ProjectForm(name="this is a test"),
                     email=store_email)
搜索并找到了类似问题的另一个线程(没有答复):


项目名称
(不是表单对象,因为它将用html标记值填充
InstituteForm.project\u名称
),所以您可以使用下一个代码:

form = InstituteForm(institue_name="cambridge",
                     project_name=dict(name="test name"),
                     email=["email@gmail", "email@gmail"])

此示例相当,因为WTForms使用构造函数和
obj
参数以及
**kwargs
,这两个参数在本示例中的作用类似

form = InstituteForm(institue_name="cambridge",
                     project_name=dict(name="test name"),
                     email=["email@gmail", "email@gmail"])
class Project(object):
    name = "test"
    workflow = ["test1", "test2"]

form = InstituteForm(institue_name="cambridge",
                     project_name=Project(),
                     email=["email@gmail", "email@gmail"])
class Project(object):
    name = "test"
    workflow = ["test1", "test2"]

class Institute(object):
    institue_name = "cambridge"
    project_name = Project()
    email = ["email@gmail", "email@gmail"]

form = InstituteForm(obj=Institute())