2012-08-30 305 views
0

我想要做的是:的項目數創建行Django模板

從list.dias.all 我創建3種元素的

<div class="row-fluid center"> 

,只是把最大無法思考此代碼。

<div class="row-fluid center" id="{{list.dias.all.count}}"> 
    {% for dia in list.dias.all %} 
      <div class="span4" id="element" > 
       <div> 
        <h6 style="color: #9937d8">{{dia.tipo_dias.description}}</h6> 
        <small style="color: #b2e300">{{ dia.title_yt }}</small> 

       </div> 
       <div id="another div"></div> 
      </div> 
    {% endfor %}  
    </div> 

是那種新手的問題,但我不知道是否是更好的使用Django,Django的模板或jQuery來解決。

在此先感謝

- 編輯

謝謝!但我想迭代,每三個元素創建一個新行。 我現在更接近回答。

如果列表包含30個元素,則爲每3個元素創建一行。不是前3個。

回答

2

就那樣做:

{% for dia in list.dias.all|slice:":3" %} 
+0

感謝schacki,但我被誤解了。 我真正想要的是: 如果列表包含30個元素,則爲每個3個元素創建一行。 不是第一個。 但我現在更接近,感謝您的幫助。 – cleliodpaula

0

的「週期」模板標籤也許可以做你想做的。 https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#cycle

我不能肯定它的div打開和關閉其中對於你的例子,但這個想法是使用循環標籤通過循環關閉並重新打開股利每一個這麼多次,除非這是最後一次迭代。

<div class="row-fluid center" id="{{list.dias.all.count}}"> 
{% for dia in list.dias.all %} 
    <div class="span4" id="element" > 
     <div> 
      <h6 style="color: #9937d8">{{dia.tipo_dias.description}}</h6> 
      <small style="color: #b2e300">{{ dia.title_yt }}</small> 
     </div> 
    {% if forloop.revcounter > 1 %}{% cycle '' '' '</div><div>' %}{% endif %} 
    </div> 
{% endfor %}  
</div> 
+0

對不起,這當然不完全正確。就像我說過的,我不確定哪個div是哪個。而循環標籤可能不適合這個工作。如果我能看到最終結果應該是什麼樣子,我可能會改進這個答案。 – MillerC