Django : { % 사이클 %}의 문제
-
07-07-2019 - |
문제
이것은 내 django 템플릿에서 직접 가져옵니다.
{% for day in days %}
<!-- {% cycle 'day' 'day' 'day last' as cls %} -->
{% rounded "black" cls %} {# Custom tag giving me rounded borders. #}
...
{% endrounded %}
{% endfor %}
나는 댓글을 달았다 {% cycle %}
내가 설정하는 데만 사용하기 때문에 "cls
" 에게 "day last
"루프의 세 번째 반복. 뷰에 코드를 추가하지 않고이 작업을 수행 할 수있는 더 좋은 방법이 있습니까? (사람들은 논리가 템플릿을 벗어나야하지만 다른 방법으로는 거의 더 나쁩니다.)
해결책
현재 솔루션이 작동하는 것처럼 보이기 때문에 왜 문제가 있는지 이해하지 못합니다. 나는 당신이 HTML 댓글이 필요하다고 생각하지 않습니다. {% cycle %}
~와 함께 as
아무것도 출력하지 않지만 그 외에는 괜찮아 보입니다.
그러나 다른 방법을 원한다면 사용할 수 있습니다. divisibleby
필터:
{% for day in days %}
{% if forloop.counter|divisibleby:3 %}
{% rounded "black" "day last" %}
{% else %}
{% rounded "black" "day" %}
{% endif %}
{% endfor %}
그러나 나는 이것이 당신이 이미 가지고있는 것보다 낫다고 생각하지 않습니다.
다른 팁
'Django Development 버전의 새로운 새로운 것'
'태그'로 사이클 '은 이제'사일런트 '모드를 가지고 있습니다.
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#cycle
응용 프로그램 논리는 템플릿에 있어서는 안됩니다. 프리젠 테이션 논리는 거기에 속합니다 (이것은 이것이 보이는 것입니다). 나는 그것을 거기에 넣었다.
음 ... 그게 뭐야 cycle
태그입니다. 왜 당신이 그것을 피하려고 노력하는지 모르겠지만 알아야합니다.
- 템플릿 코드가 변수에 할당되지 않기 때문에 일부 규칙을 선택적으로 적용 해야하는 모든 논리에는 Python 코드가 필요합니다.
- 파이썬 코드는 템플릿 태그 또는 기능 로직에서 호출되어야합니다.
따라서 뷰 로직을 사용하지 않으면 템플릿 태그가 붙어 있습니다. 직접 작성하거나 내장 된 것을 사용하십시오. cycle
다른 것만 큼 쉬운 것 같습니다. 뭐가 문제 야.