2011-03-05 9 views
2

다음과 같은 출력은 어떻게됩니까? 정확하게 "블록"클래스 다음에 "그리드"클래스를 출력하고 싶습니다. 내부 div는 뷰에서 반환 된 객체입니다.템플릿의 장고 중첩 된 루프

<div class="grid"> 
    <div class="block">...</div> 
    <div class="block">...</div> 
    <div class="block">...</div> 
    <div class="block">...</div> 
</div> 
<div class="grid"> 
    <div class="block">...</div> 
    <div class="block">...</div> 
    <div class="block">...</div> 
    <div class="block">...</div> 
</div> 
... 

forloop.counter0 | divisibleby : 4를 사용해 보았습니다. 성공하지 못했습니다.

답변

12

나는 카운터 방법으로 올바른 길을 가고 있다고 생각합니다. 그러나, 당신은 그냥 당신을 트립하는 몇 가지 구문 오류가있는 것 같습니다. forloop.counter|divisibleby:"4"을 원하면

<div class="grid"> 
    {% for item in items %} 
     <div class="block">...</div> 
     {% if forloop.counter|divisibleby:"4" %} 
</div> 
<div class="grid"> 
     {% endif %} 
    {% endfor %} 
</div> 

등의 트릭을 사용해야합니다.

+0

nice. (문자 한도) –

+0

내 문제를 해결하기위한 좋은 코드 –

1

보십시오 forloop.counter | divisibleby : 4. 제로의 추가는 루프가 제로 인덱스됨을 의미합니다. 4 번째 루프에 도착할 때 카운터는 3을 4로 균등하게 나눌 수 없습니다.