2009-12-22 35 views
15

Tôi có danh sách sản phẩm đưa 3 sản phẩm lên hàng và xóa hàng và thêm 3 sản phẩm khác, hoạt động tốt ở mọi nơi nhưng IE6, tôi biết rằng thêm <div> xung quanh mỗi nhóm 3 sản phẩm sẽ giải quyết đây là mẫu hồ sơ tại thời điểmpython thêm div mới mỗi lần lặp thứ 3

{% for product in category.products.all %} 
     <div class="{% cycle 'clear' '' '' %}"> 
      <a href="{% url shop.views.product category.slug product.slug %}"><img src="{{MEDIA_URL}}{{product.mini_thumbnail}}" alt="{{product.name}}" class="thumbnail"/></a> 
      <div class="prod-details"> 
      <h3><a href="{% url shop.views.product category.slug product.slug %}">{{product.get_product_name}}</a></h3> 
      <h4 class="strap">{{product.get_product_detail}}</h4> 
      <p>{{ product.strap }}</p> 
      <ul> 
       <li class="price">&pound;{{product.price}}</li> 
       <li class="quantity"> 
        <select name="quantity_{{product.id}}"> 
         <option label="1" value="1">1</option> 
         <option label="2" value="2">2</option> 
         <option label="3" value="3">3</option> 
         <option label="4" value="4">4</option> 
         <option label="5" value="5">5</option> 
         <option label="6" value="6">6</option> 
         <option label="7" value="7">7</option> 
         <option label="8" value="8">8</option> 
         <option label="9" value="9">9</option> 
        </select> 
       </li> 
       <li><a href="{% url shop.views.product category.slug product.slug %}">Details &gt;</a></li> 
       <li class="right"><input type="submit" name="add_to_basket_{{product.id}}" value="Add to Basket &gt;"/></li> 
      </ul> 
      </div> 
     </div> 
    {% endfor %} 

Trả lời

37

giải pháp của mã hóa chỉ hoạt động nếu bạn đang sử dụng thanh toán SVN gần đây của thân cây Django. Nếu bạn đang sử dụng phiên bản 1.1 trở xuống, cú pháp đó không được hỗ trợ.

Thay vào đó, bạn có thể sử dụng divisibleby lọc:

{% if forloop.counter|divisibleby:3 %}<div>{% endif %} 
8

Sử dụng forloop.counter và một nhà điều hành modulo bên trong vòng lặp:

{% for ... %} 
{% if forloop.counter|divisibleby:3 %}<div>{% endif %} 
... 
{% if forloop.counter|divisibleby:3 %}</div>{% endif %} 
{% endfor %} 

Xem http://docs.djangoproject.com/en/dev/ref/templates/builtins/#for

EDIT:

Sửa lỗi ví dụ mã.

+0

Tôi đã cố gắng làm điều này tôi nhận được một lỗi mẫu 'nếu' tuyên bố không đúng định dạng – Udders

+0

Xin lỗi, tôi quên rằng Django-khuôn mẫu câu lệnh if không chấp nhận bất kỳ biểu thức python. – codeape

Các vấn đề liên quan