gpt4 book ai didi

python - Wtforms 表单,用于访问嵌入式表单字段的语法

转载 作者:太空狗 更新时间:2023-10-30 01:23:03 25 4
gpt4 key购买 nike

尝试填充 Wtform 表单字段,将数据从 mongo 数据库中提取出来,然后将其提供给 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 输出:

上传示例输出[ http://tinypic.com/r/jpfz9l/5] , 没有足够的点将图像发布到堆栈溢出。

我试过像这样的语法:

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

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

甚至

form = InstituteForm(institue_name=store_i,
project_name=ProjectForm(name="this is a test"),
email=store_email)

是否搜索并找到了类似问题的另一个线程(没有回复):

Using FieldList and FormField

最佳答案

project_name can be dict or object (不是表单对象,因为它将使用 html 标记值填充 InstituteForm.project_name),因此您可以使用下一个代码:

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())

这个例子是等价的,因为 WTForms 使用带有 obj 参数和 **kwargs 的构造函数,这对于这个例子来说是相似的。

关于python - Wtforms 表单,用于访问嵌入式表单字段的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17364964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com