我使用Flask-WFT documentation page上提供的render_field宏跨不同的模板以长表单呈现字段。
字段的定义如下所示
year_built = IntegerField(label='Year Built',
description='Year built, not the year of a major renovation.',
validators=[validators.NumberRange(
min=1700,
max=2012,
message="Between %(min)s and %(max)s")])宏看起来像这样...
{% 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 %}在表单本身中,各个字段使用...
{{ render_field(form.year_built, class="input text")}}我不明白的是,有一种方法可以在创建HTML字段field(**kwargs)的宏中使用字段对象中的描述。我知道我可以将关键字传递给render_field函数,但是我要处理的表单有100多个字段,在forms.py中设置描述,然后在template.html中将其再次设置为标题关键字,这似乎是不必要的重复。我真的很想使用宏来显示描述作为标题,如果它在那里,或者只是显示没有标题的字段。
有没有办法在kwargs ()函数运行之前向字段中添加新条目?
发布于 2012-08-17 06:07:04
所以这比我想象的要容易得多。
{% macro render_field(field) %}
<dt>{{ field.label }}
<dd>{{ field(title=field.description, **kwargs)|safe }}
{% if field.errors %}
<ul class=errors>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</dd>
{% endmacro %}https://stackoverflow.com/questions/11996033
复制相似问题