Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用表单字段描述呈现html标题属性_Python_Flask_Wtforms - Fatal编程技术网

Python 使用表单字段描述呈现html标题属性

Python 使用表单字段描述呈现html标题属性,python,flask,wtforms,Python,Flask,Wtforms,我正在使用上显示的render_field宏跨不同模板以长格式渲染字段 字段的定义如下 year_built = IntegerField(label='Year Built', description='Year built, not the year of a major renovation.', validators=[validators.NumberRange(

我正在使用上显示的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 %}
我不知道如何在创建HTML字段
字段(**kwargs)
的宏部分中使用字段对象中的描述。我知道我可以将关键字传递给render_field函数,但我处理的表单有100多个字段,在forms.py中设置描述,然后在template.html中再次将其设置为title关键字,这似乎是不必要的重复。我真的很想使用宏来显示一个描述作为一个标题,如果它在那里,或者只是显示没有标题的字段,如果它没有


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

所以这比我想象的要简单得多

{% 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 %}
{%macro render_field(field)%}
{{field.label}
{field(title=field.description,**kwargs)| safe}
{%if field.errors%}

{%字段中有错误。错误%}
  • {{error}}
  • {%endfor%} {%endif%} {%endmacro%}
    哦,天哪。。。我不知道模板中的field()和forms.py中的field类不同。换句话说,我可以添加一些属性,比如'dataforajax'(field(dataforajax='test')),并将其放入html中。但是,我在添加“用于ajax的数据”时遇到了问题,我可能需要对属性进行一些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 %}