如果声明在Jinja2中的声明

Kar*_*lik 1 python google-app-engine if-statement jinja2

我有一个在GAE中托管的网站,在我的Jinja2模板中,我在FOR语句中有一个IF语句.

我使用以下方法启用了jinja2.ext.loopcontrols循环控件:

template_dir = os.path.dirname(__file__)
ENV = jinja2.Environment(loader=jinja2.FileSystemLoader(template_dir),
                                       autoescape=True,
                                       extensions=['jinja2.ext.autoescape',
                                                   'jinja2.ext.loopcontrols'])
Run Code Online (Sandbox Code Playgroud)

我的模板看起来像这样:

{% for i in data %}
  (% if i.date_posted is defined %)
    {{ i.date_posted.strftime('%d %b %Y') }}
  {% else %}
    No
  {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我一直收到错误:

TemplateSyntaxError:遇到未知标签'endif'.Jinja正在寻找以下标签:'endfor'.需要关闭的最里面的块是'for'.

Mar*_*ers 5

您没有if正确声明您的代码:

(% if i.date_posted is defined %)
Run Code Online (Sandbox Code Playgroud)

注意括号而不是花括号; 它应该写成:

{% if i.date_posted is defined %}
Run Code Online (Sandbox Code Playgroud)