Twitter bootstrap 3 Jinja/WT表格需要验证
我有一个前端,通过一个简单的宏生成引导表单:Twitter bootstrap 3 Jinja/WT表格需要验证,twitter-bootstrap-3,jinja2,wtforms,flask-wtforms,Twitter Bootstrap 3,Jinja2,Wtforms,Flask Wtforms,我有一个前端,通过一个简单的宏生成引导表单: {% macro render_field(field, class_='', label_visible=true) -%} <div class="form-group {% if field.errors %} has-error {% endif %}"> {% if (field.type != 'HiddenField' and field.type !='CSRFTokenField') and label_vis
{% macro render_field(field, class_='', label_visible=true) -%}
<div class="form-group {% if field.errors %} has-error {% endif %}">
{% if (field.type != 'HiddenField' and field.type !='CSRFTokenField') and label_visible %}
<label for="{{ field.id }}" class="control-label">{{ field.label }}</label>
{% endif %}
{{ field(class_='form-control', **kwargs) }}
{% if field.errors %}
{% for e in field.errors %}
<p class="help-block">{{ e }}</p>
{% endfor %}
{% endif %}
</div>
{%- endmacro %}
是否可以以aria required=“true”
的形式为作为验证器的字段添加前端验证DataRequired
如果是,如何创建一个字典,其中包含一对或多对属性,以添加到Jinja宏中的字段中:
{% set attribs = {'aria-required':"true"} %}
{{ field(class_="form-control", **attribs) }}
你也可以在线做
{{ field(class="form-control", **{'aria-required':"true"} ) }}
无论哪种方法都很好您需要将属性传递给字段。不幸的是,由于属性名中的连字符,无法直接执行此操作。虽然erikwco的建议会起作用,但如果您将属性作为宏的一部分添加,它会阻止您将
kwargs
传递到字段中。似乎Jinja只有一个**dict
要在给定函数中展开
解决办法是:
要使其正常工作,您可能需要在应用程序初始化期间使用jinja:
app.jinja_env.add_extension('jinja2.ext.do')
{% do kwargs.update({'aria-required': "true"}) %}
{{ field(class_="form-control", **kwargs) }}
app.jinja_env.add_extension('jinja2.ext.do')