首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Flask-WTForms字段描述呈现html title属性

使用Flask-WTForms字段描述呈现html title属性
EN

Stack Overflow用户
提问于 2012-08-17 05:57:28
回答 1查看 5.2K关注 0票数 7

我使用Flask-WFT documentation page上提供的render_field宏跨不同的模板以长表单呈现字段。

字段的定义如下所示

代码语言:javascript
复制
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")])

宏看起来像这样...

代码语言:javascript
复制
{% 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 %}

在表单本身中,各个字段使用...

代码语言:javascript
复制
{{ render_field(form.year_built, class="input text")}}

我不明白的是,有一种方法可以在创建HTML字段field(**kwargs)的宏中使用字段对象中的描述。我知道我可以将关键字传递给render_field函数,但是我要处理的表单有100多个字段,在forms.py中设置描述,然后在template.html中将其再次设置为标题关键字,这似乎是不必要的重复。我真的很想使用宏来显示描述作为标题,如果它在那里,或者只是显示没有标题的字段。

有没有办法在kwargs ()函数运行之前向字段中添加新条目?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-17 06:07:04

所以这比我想象的要容易得多。

代码语言:javascript
复制
{% 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 %}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11996033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档