Django 无效的块标记';设置';,预期';空的';或';endfor';。您是否忘记注册或加载此标签?
我使用Django 1.11,在我的模板文件中有以下代码:Django 无效的块标记';设置';,预期';空的';或';endfor';。您是否忘记注册或加载此标签?,django,jinja2,Django,Jinja2,我使用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_c
{% 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 color_category='light-blue' %}
Do stuff
{% endwith %}
但是,在python的视图中执行此类操作总是更好。上述解决方案是正确的,但有一个小错误。变量与其值之间不应存在空格,因此正确的轴应为:
{% with color_category='light-blue' %}
Do stuff
{% endwith %}
你想干什么?Django模板没有
set
标记,不支持赋值。在Flask中,我可以在Jinja2中设置,但我不知道Django不支持它。我只想在视图中声明一个变量,以便在特定标签上添加颜色,而无需执行多重If/html代码。我不知道FLask,但我知道django,所以您可以为此创建templatetags,并在模板页面顶部加载templatetags文件?你能分享{%get%}的相关代码吗?我没有从我的控制器函数加载任何内容。我直接在视图中创建此变量:/I我想我将从控制器加载此变量。但我想我不是唯一一个从Flask到Django有同样问题的人:/