我想拥有至少size = 50的长格式,并且在html中我有:
{{ form.name(size=50) }}
但是,我对每个页面都有10个表单,是否可以忽略这种多余的方式并且可以解决? (没有大小= 50)
谢谢
答案 0 :(得分:1)
有很多方法可以实现这一目标,具体取决于您想要解决的链条中的位置。但我认为模板层是你应该解决的问题,因为你想要的只是纯粹的演示。
假设您使用的是Jinja2,您可以编写一个小宏来预设您希望呈现的每个字段的size
关键字参数:
宏:
{% macro render_field(field) -%}
{% if field.type != 'HiddenField' %}
<label for="{{ field.id }}">{{ field.label }}</label>
{{ field(size=50, **kwargs) }}
{% endif %}
{%- endmacro %}
请注意,在字段调用中,我将其size
预设为50
。
接下来,要渲染该字段,只需使用字段名称(在这种情况下为some_field
)调用此宏:
{{ render_field(form.some_field) }}
这是假设您将宏和字段呈现代码放在同一模板文件中。 对于较大的模板,建议拆分宏并将代码渲染到不同的文件中。宏进入&#34; _helper&#34;文件按照惯例。
如果您将此宏放在名为&#34; form_helper.html&#34;的文件中,则需要先将此文件导入包含实际字段呈现代码的模板中:
{% import 'form_helper.html' as form_helper %}
现在form_helper.html
命名空间中的所有宏都位于form_helper
中。因此,您的字段呈现代码将变为:
{{ form_helper.render_field(form.some_field) }}