- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个动态表单(在 python Flask 应用程序中)使用WT 表格。
WTForms 包含一个用于字段列表的 FieldList 字段。我想用它来制作一个表单,用户可以在其中添加或删除项目,例如指定不同的电话号码。
这是一个 example of a WTF solution将 Ajax 与 WTForms 和 related question 结合使用.这些克隆一个现有的表单,因此只有在已经存在至少一个表单实例的情况下才有效。我想删除此约束以允许最初为空的表单。
我想使用 javascript form plugin called SheepIt使用 html 中的“表单模板”动态添加/删除允许这样做的小部件。
问题是如何替换“表单模板”中的自定义 html,例如:
<input id="phoneForm_#index#_number"
name="user[phones][#index#][number]" type="text"
WTF 表单字段,例如:
{% for phone in form.phones %}
{{ phone.number }}
{% endfor %}
这允许 WTF 好东西,例如打印表单验证错误等。这里的问题是,当使用 SheepIt 中的“模板表单”时,我不知道是否/在哪里放置上面的 for 循环。
最佳答案
Flask 的文档建议使用以下 jinja2 宏来呈现 WTForms 字段:
{% macro render_field(field) %}
<dt>{{ field.label }}
<dd>{{ field(**kwargs)|safe }}
{% if field.errors %}
<ul class=errors>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</dd>
{% endmacro %}
为了在字段列表中呈现子字段,我使用了这个宏的一个稍微不同的版本:
{% macro render_multi_field(field,field_name) %}
<div class="form-group">
{{ field_name }}
{% for subfield in field %}
<div class="base_class{% if subfield.errors %} error_class{% endif %}" id="{{subfield.name}}-group">
{{ subfield(**kwargs)|safe }}
<button data-field="{{ subfield.name }}-group">Remove Entry</button>
</div>
{% if subfield.errors %}
{% for error in subfield.errors %}
<p class="error_class">{{ error }}</p>
{% endfor %}
{% endif %}
{% endfor %}
<br/>
<button type="button">Add entry</button>
</div>
{% endmacro %}
我使用此宏来呈现 0 到任意数量的条目的字段。它允许错误呈现、使用默认值填充以及您使用 WTForms 执行的任何其他操作。
在我的例子中,小部件是由 javascript 通过宏中的按钮添加/删除的。
关于javascript - 使用 WTForms FieldList 和 Ajax 从模板附加表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21663786/
我正在使用 Flask 和 Flask-WTF,我需要创建一个包含多个具有相似结构的 block (子表单)的表单(例如具有一个 SelectField 和一个 TextAreaField 的子表单)
我想以特定顺序检索对象中的字段。我找到了一种使用反射来检索字段的方法,但不能保证每次都以相同的顺序返回字段。这是我用来检索字段的代码: ReleaseNote rn = new ReleaseNote
我有以下表格, class AddForm(wtf.Form): tags = TagListField("Tags (comma separated)", validators=[wtf.R
我使用 WTForms FieldList字段列表的字段。它获取这些输入字段的值,这些值按它们在 form.data 中的名称排序。但我想按照它们在表单中出现的顺序获取值。覆盖 process 函数是
wtforms FieldList && 验证出现问题...应该说该字段必须有Int值,而不是This field is required为什么 f.data 具有 [None, 2, None] 值
将FieldList与WTForms一起使用时,通过验证时遇到麻烦。我不断收到此错误。 {'csrf_token': [u'CSRF token missing']}。问题是,如果我在FieldLis
我正在使用 WTForm 来验证我直接从 javascript 模型提交的表单(通过挖空填充)。在我的表单中,我有一个可以动态添加/删除的银行帐户列表。在 python 方面,我有这样的东西: cla
我有这个订单表格,允许我的用户创建订单。一个订单由 (producetype, quantity) 的多个元组组成. Producetype 应在 中呈现形式而数量可以只是一个输入。 produce
我有一个 flask + wtforms 应用程序,我希望用户能够在其中输入父对象和任意数量的子对象。我不确定从用户界面动态创建新子表单输入字段的最佳方式是什么。 到目前为止我得到了什么 下面是一个完
我们有以下表单,我们正在尝试为每个组创建 GroupRoleForms 列表。 class FullNameMixIn(): full_name = TextField( 'F
我在 Filling WTForms FormField FieldList with data results in HTML in fields 上看到了同样的奇怪行为我的原始字段使用 HTML
这个问题已经有答案了: How to populate wtform select field using mongokit/pymongo? (2 个回答) 已关闭 4 年前。 类似于这个问题: D
我在 FieldList 中的 FormField 中有一个自定义字段:locations class LocationForm(Form): id = HiddenField('id')
我有一个带有 flask-wtf 的表单用于上传图片,文件字段也可以多个字段。 我的表单: class ComposeForm(Form): attachment = FieldList(Fi
我正在使用 Flask 构建网站我在其中使用 WTForms .在 Form 中,我现在想使用 FormFields 的 FieldList,如下所示: class LocationForm(Form
我正在尝试使用 WTF 字段、FormField、FieldList 创建一个 ListItem 表单: forms.py class WarehouseTicketItemForm(Form):
确实缺乏有关如何使用 WTForms 的 FieldList 的文档。因此,多亏了互联网,我才能够将以下内容组合在一起: 表格: class BranchForm(Form): name =
我正在尝试创建一个动态表单(在 python Flask 应用程序中)使用WT 表格。 WTForms 包含一个用于字段列表的 FieldList 字段。我想用它来制作一个表单,用户可以在其中添加或删
我想生成带有复选框的文件列表。我试过使用 FieldList 但它没有像我预期的那样工作。我得到的不是带有指定文件名的复选框,而是带有以包含 FieldList 对象的变量命名的标签的复选框。有什么办
我有一个 Flask 应用程序,我可以通过上传一个 CSV 文件来填充表单数据,然后读取该文件。我想用从 CSV 读取的数据填充一个 FieldList。但是,当我尝试填充数据时,它会将原始 HTML
我是一名优秀的程序员,十分优秀!