我在 Django 1.11 上工作,在我的模板文件中我有这段代码:
{% for article in all_articles %}
{% set color_category = 'light-blue' %}
{% if article.category == 'SEO' %}
{% color_category = 'light-blue' %}
{% elif article.category == 'SEA' %}
{% color_category = 'amber' %}
{% elif article.category == 'Python' %}
{% color_category = 'green' %}
{% elif article.category == 'Django' %}
{% color_category = 'light-green' %}
{% else %}
{% color_category = 'light-blue' %}
{% endif %}
{% endfor %}
Django向我返回了此错误:
Exception Type: TemplateSyntaxError
Exception Value:
Invalid block tag on line 12: 'set', expected 'empty' or 'endfor'. Did you forget to register or load this tag?
你有想法吗?询问您是否需要更多信息(例如我的设置文件)。
谢谢!
set
在Django 中不是有效的标签。如果要在模板中定义变量,则应使用 with
。
{% with color_category='light-blue' %}
Do stuff
{% endwith %}
但是,最好在 python 的视图中执行此类操作。
上面的解决方案是正确的,但有一个小错误。变量和它的值之间不应该有空格,所以正确的 sintaxis 应该是:
{% with color_category='light-blue' %}
Do stuff
{% endwith %}