Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 无效的块标记';设置';,预期';空的';或';endfor';。您是否忘记注册或加载此标签?_Django_Jinja2 - Fatal编程技术网

Django 无效的块标记';设置';,预期';空的';或';endfor';。您是否忘记注册或加载此标签?

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

我使用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 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有同样问题的人:/