【发布时间】:2017-06-20 06:50:43
【问题描述】:
//编辑
我使用的是标准模板语言,而不是 jinja。标准模板语言不支持set 标记。
如何使用 jinja 声明一个新变量?
以下代码块中的第二行导致错误:
{% set msg_class = "" %}
错误信息:
第 13 行的块标记无效:'set'、预期的 'elif'、'else' 或 'endif'。您是否忘记注册或加载此标签?
其余代码:
{% if msg %}
{% set msg_class = "" %}
{% if status == 1 %}
{% set msg_class = "alert alert-success" %}
{% elif status == 3 %}
{% set msg_class = "alert alert-danger" %}
{% elif status == 4 %}
{% set msg_class = "alert alert-warning" %}
{% else %}
{% set status = 2 %}
{% set msg_class = "alert alert-info" %}
{% endif %}
{% endif %}
使用我发现的以下线程中的数组对我来说真的很难看。它是唯一的解决方案吗?
Can a Jinja variable's scope extend beyond in an inner block?
【问题讨论】:
-
您确定您使用的是 Jinja 吗?这是标准 Django 模板语言的错误。
-
我想如果我在html模板中使用代码,它就叫做jinja?我错了吗? en.wikipedia.org/wiki/Jinja_(template_engine)
-
是的,你错了。 Jinja 是一个独立的模板系统,Django 支持但不是默认的。您正在使用标准模板语言,该语言在 Django 站点上有详细记录,并且不支持
set标记。 -
谢谢,现在我知道如何继续搜索了!