如何使用Flask-WTForms以DRY方式创建重复的表单元素?

克里斯汀

我有一个WTForms表单,我希望用户能够上传多达10张图像,并提供图像标题和字幕。目前,我声明了所有10组字段,但这似乎是多余的。有没有一种方法可以创建具有动态名称的表单字段,所以我可以循环创建它们?

class MyForm(Form):
    image1 = FileField('Upload')
    image1_caption = StringField('Caption')
    image1_credit = StringField('Credit')
    image2 = FileField('Upload')
    image2_caption = StringField('Caption')
    image2_credit = StringField('Credit')
    # ...through 10 images...
肖恩·维埃拉(Sean Vieira)

通过FormField结合使用,您可以获得想要的东西FieldList

class ImageForm(Form):
    image = FileField('Upload')
    caption = StringField('Caption')
    credit = StringField('Credit')

class MyForm(Form):
    images = FieldList(FormField(ImageForm), min_entries=10)

然后,您可以ImageForm通过my_form_instance.images.entries或通过遍历来访问各个实例my_form_instance.images

for image in my_form_instance.images:
    print(image.data['caption'], image.data['credit'])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用JavaScript或alpineJS创建重复的表单元素

如何使用Flask WTForms创建多选选项

如何使用flask从表单创建动态URL

使用Flask-WTForms,如何设置html的表单部分的样式?

在Flask / WTForms中创建具有不同数量的重复子表单的表单

如何动态创建javascript表单元素

如何使用 JavaScript 更改 Flask 表单输出

使用JQuery动态重复和删除表单元素

如何使用 Flask 中的字典创建动态选择表单?

使用Flask / WTForms的多部分表单

提交后如何避免创建表单元素仍然存在?

使用Twitter Bootstrap创建非常大的表单元素

如何在使用Flask和WTForms保留表单数据的同时进行重定向?

如何在AJAX中使用Flask-WTForms CSRF保护?

如何使用WTForms从模型列表中创建表单?

如何创建动态HTML表单的创建JSON对象(包含表单元素)?

如何在 Flask-WTForms render_kw 中使用 Flask-Babel gettext?

如何根据flask和flask-sqlalchemy的动态属性使用wtforms SelectField?

如何从ajax POST表单提交使用Flask的render_template

如何使用flask在表单中添加默认值?

如何使用Flask从HTML表单传递Python函数输入?

如何使用Flask将表单上载的文件链接到模型?

如何使用flask-cache创建的缓存值

如何使用MySQL和Flask创建表并插入数据

如何使用 Flask 创建基于模板的动态 URL

使用Flask wtforms验证器而不使用表单

如何使用Flask用户扩展名“以编程方式”创建用户?

如何在pythonanywhere上使用python和flask创建Web表单

如何使用 Python Flask 创建具有关联表单的项目列表