首页 > 解决方案 > 如何将 if 语句放在 jinja2 的宏中?

问题描述

我有以下宏,如果可能的话,我想在其中放置 if 语句。

{% macro input(name, plc, required=true, type='text', class='validate') -%}
  <input name="{{ name }}" placeholder="{{ plc }}" type="{{ type }}" class="{{ class }}" value="{{ session.get(name) }}" { % if required %} required {% endif %}>
{%- endmacro %}

因此,它会引发以下错误:

jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'endif'. Jinja was looking for the following tags: 'endmacro'. The innermost block that needs to be closed is 'macro'.

标签: flaskjinja2

解决方案


我猜是错字,里面有一个额外的 blanc 字符{ % if required %},应该是{% if required %}


推荐阅读