2017-10-13 53 views
1

我的Django的1.11,在我的模板文件工作,我有這樣的代碼:塊標記'set'無效,預計爲'empty'或'endfor'。你忘了註冊或加載這個標籤嗎?

{% 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? 

你有一個想法? 詢問您是否需要更多信息(如我的設置文件)。

謝謝!

+1

你想要做什麼? Django模板沒有'set'標籤並且不支持賦值。 –

+0

在Flask中,我可以在Jinja2中設置,但我不知道Django不支持它。我只想在我的視圖中聲明一個變量來在特定標籤上添加顏色,而不用執行多個If/html代碼。 – Zoloom

+0

我不知道FLask,但我知道Django所以你可以爲此製作模板標籤並在模板頁面的頂部加載templatetags文件?你可以分享{%get%}的相關代碼嗎? –

回答

1

set在django中不是有效的標籤。如果你想在你的模板中定義一個變量,你應該使用with

{% with color_category = 'light-blue' %}  
    Do stuff 
{% endwith %} 

但是,在python視圖中執行這種操作總是更好。

0

上述解決方案是正確的,但是有一個小錯誤。變量和它的值之間不應該有空格,所以正確的sintaxis應該是:

{% with color_category='light-blue' %}  
    Do stuff 
{% endwith %} 
相關問題