문제

이것은 내 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

http://code.djangoproject.com/ticket/13567

응용 프로그램 논리는 템플릿에 있어서는 안됩니다. 프리젠 테이션 논리는 거기에 속합니다 (이것은 이것이 보이는 것입니다). 나는 그것을 거기에 넣었다.

음 ... 그게 뭐야 cycle 태그입니다. 왜 당신이 그것을 피하려고 노력하는지 모르겠지만 알아야합니다.

  1. 템플릿 코드가 변수에 할당되지 않기 때문에 일부 규칙을 선택적으로 적용 해야하는 모든 논리에는 Python 코드가 필요합니다.
  2. 파이썬 코드는 템플릿 태그 또는 기능 로직에서 호출되어야합니다.

따라서 뷰 로직을 사용하지 않으면 템플릿 태그가 붙어 있습니다. 직접 작성하거나 내장 된 것을 사용하십시오. cycle 다른 것만 큼 쉬운 것 같습니다. 뭐가 문제 야.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top