2013-06-27 17 views
1

如何在我的模板中顯示一組6個縮略圖以創建幻燈片。我通過for循環迭代的列表中有大約30個項目,我想將其分解爲6個塊,並將其顯示爲幻燈片幻燈片。我試着用的for循環的範圍功能,但是,這並不工作如何使用引導程序和循環在django中創建電影帶?

<div class="carousel-inner"> 
     <div class="item active"> 
      <ul class="thumbnails"> 

       {% for show in object_list %} 
        <li class="span2"> 
         <div class="thumbnail"> 
          <a href="{{ show.get_absolute_url }}" data-title="{{ show.name }}" > 
            {% if show.images.exists %} 
             {% with show.images.all.0.image as show_image %} 
              <img src="{% thumbnail show_image 160x160 crop %}" alt="{{show.name}}" class="thumbnail"> 
             {% endwith %} 
            {% else %} 
             <img src="{% static 'img/default-image.gif' %}" alt="{{show.name}}" class="thumbnail"> 
            {% endif %} 
           </a> 


         </div> 
        </li> 
      {%endfor%} 
      </ul> 
     </div> 
+0

每6個圖像一個傳送帶? –

回答

1

如果你想每6 1輪播圖片,那麼你可以做這樣的

步驟1)創建一個新的.html文件夾名爲film-slider.html

{% for reel in reels %} 
<div class="carousel-inner"> 
    <div class="item active"> 
     <ul class="thumbnails"> 
      {% for show in reel %} 
      <li class="span2"> 
       <div class="thumbnail"> 
        <a href="{{ show.get_absolute_url }}" data-title="{{ show.name }}" > 
         {% if show.images.exists %} 
          {% with show.images.all.0.image as show_image %} 
           <img src="{% thumbnail show_image 160x160 crop %}" alt="{{ show.name }}" class="thumbnail"> 
          {% endwith %} 
         {% else %} 
          <img src="{% static 'img/default-image.gif' %}" alt="{{ show.name }}" class="thumbnail"> 
         {% endif %} 
        </a> 
       </div> 
      </li> 
      {% endfor %} 
     </ul> 
    </div> 
</div> 
{% endfor %} 

步驟2)在你templatetags/tags.py(創建它,如果你還沒有)

from django import template 

register = template.Library() 

def filmslider(reel): 
    reels = [] 
    for i in range(0, len(reel), 6): 
     reels.append(reel[i:i+6]) 
    return {'reels':reels} 

register.inclusion_tag('film-slider.html')(filmslider) 

這將使一個包含標籤,一旦你在模板中的可用通過{% load tags %}加載它。

這將使這項工作爲你這樣{% filmslider object_list %}你將取代所有上述html代碼張貼與。

我還沒有測試這個,但它應該工作,如果將來你希望有更多的功能這個標籤,你可以簡單地添加參數到標籤定義,我會舉一個例子。

def filmslider(reel, slides): 
    #do the code. 

,這將導致你{% filmslider object_list 9 %},瞧,現在你可以從6張幻燈片延長你的電影卷軸9

希望這有助於一點!

+0

非常感謝,這真是太棒了。另外,我是Django的新手,你能告訴我應該在哪裏創建我的tempatetags目錄嗎? – Mayank

+0

在您的應用程序模塊中創建一個名爲templatetags的文件夾,並確保其中有一個init.py。它在文檔中,google模板標籤Django及其第一個結果! :) –

+0

絕對是我想要的,這也將有助於我在未來的前端演示。萬分感謝! – Mayank