Jinja2宏中的变量插值?

2024-04-20 12:53:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我不清楚如何将变量作为变量传递给Jinja2模板宏。在

我正在编写一个Flask应用程序,使用通常的设置,并有如下所示的HTML:

<div class="form-row form-group">
  <div class="col-sm-2">{{form.author.label}}{% if form.author.flags.required %}*{% endif %}</div> 
  <div class="col-auto">{{form.author(class="form-control",size=40)}}</div>
</div>

<div class="form-row form-group">
  <div class="col-sm-2">{{form.title.label}}{% if form.title.flags.required %}*{% endif %}</div> 
  <div class="col-auto">{{form.title(class="form-control",size=60)}}</div>
</div>

[等等,十几次]

我想编写一个宏来处理这个问题,所以我尝试:

^{pr2}$

称之为:

{{ displayformline(author, 40) }}

但是,这会在form.field.label行中抛出错误'app.forms.BookAddForm object' has no attribute 'field'。显然,我希望那一行中的“field”是变量“field”,在本例中保存值“author”,而不是文本“field”本身。(我想我在“size=size”这一行也会遇到类似的问题。)我该怎么做?在


Tags: divformfieldsizeiftitlegrouprequired
1条回答
网友
1楼 · 发布于 2024-04-20 12:53:30

试试。。。在

{% macro displayformline(field, size) %}
  <div class="form-row form-group">
    <div class="col-sm-2 label">{{ field.label }}{% if field.flags.required %}*{% endif %}</div> 
    <div class="col-auto">{{ field(class="form-control",size=size) }}</div>
  </div>
{% endmacro %}

还有。。。在

^{pr2}$

相关问题 更多 >