2017-10-13 9 views
1

나는이 코드를 가지고 :유효하지 않은 블록 태그 'set', 'empty'또는 'endfor'가 필요합니다. 이 태그를 등록하거나로드하는 것을 잊었습니까? 내가 장고 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 %} 

을 그리고 장고 나에게이 오류 반환 :

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

무엇을하려고합니까? 장고 템플릿에는'set' 태그가없고 할당을 지원하지 않습니다. –

+0

플라스크에서는 Jinja2에서 설정할 수 있지만 장고가 지원하지 않는다는 것을 알지 못했습니다. 여러 HTML/If 코드를 사용하지 않고 특정 레이블에 색상을 추가하기 위해 내보기에서 변수를 선언하고 싶습니다. – Zoloom

+0

나는 FLask에 대해 몰랐지만 django를 알고있다. 그래서 이것을 위해 templatetags를 만들 수 있고 templatetags 파일을 템플릿 페이지의 맨 위에로드 할 수 있는가? {% get %}과 관련된 코드를 공유 할 수 있습니까? –

답변

1

set은 django에서 유효한 태그가 아닙니다. 템플릿에 변수를 정의하려면 with을 사용해야합니다.

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

그러나 이러한 종류의 작업은 항상 파이썬에서 수행하는 것이 좋습니다.

0

위의 해결 방법은 정확하지만 사소한 실수는 없습니다. 변수와 해당 값 사이에는 공백이 없어야합니다. 따라서 올바른 sintax는 다음과 같아야합니다.

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