2011-10-08 3 views
0

je pour la section dans mon modèle:Comment diviser tous les objets en parties

{% for image in gallery.images.all %} 
    <div id="image{{ image.id }}" class="frame"> 
     <img src="{{ image.url_125x125 }}" alt="{{ image.name }}" /> 
    </div> 
{% endfor %} 

Je veux diviser cette section forloop en parties, chacun avec 5 éléments, par exemple, comme celui-ci:

{% for image in gallery.images.all|slice:"5:" %} 
    <div id="image{{ image.id }}" class="frame"> 
     <img src="{{ image.url_125x125 }}" alt="{{ image.name }}" /> 
    </div> 
{% endfor %} 
{% for image in gallery.images.all|slice:"5:5" %} 
    <div id="image{{ image.id }}" class="frame"> 
     <img src="{{ image.url_125x125 }}" alt="{{ image.name }}" /> 
    </div> 
{% endfor %} 
{% for image in gallery.images.all|slice:"10:5" %} 
    <div id="image{{ image.id }}" class="frame"> 
     <img src="{{ image.url_125x125 }}" alt="{{ image.name }}" /> 
    </div> 
{% endfor %} 

etc... 

Mais je ne sais pas combien d'images sont dans la galerie. Comment le faire automatiquement? Je sais que c'est quelque chose de forloop.counter mais je ne sais pas comment :) forloop.counter modulo 5?

+0

Qu'est-ce que le but d'une telle division? Pagination? Ensuite, vous pouvez essayer [Paginator] (https://docs.djangoproject.com/en/dev/topics/pagination/#django.core.paginator.Paginator) de django. Vous ne pouvez pas faire d'opération arithmétique modulo dans les templates django. – dragoon

+0

non je veux montrer seulement 5 images en même temps et en utilisant jquery pour montrer prochain – Nips

+1

Peut-être que vous devriez penser à l'écriture de balise personnalisée alors. – dragoon

Répondre

1

pouvez-vous juste le séparer en votre vue? remplir une liste avec des listes de 5 éléments jusqu'à épuisement? Ensuite, dans votre modèle, il vous suffit d'itérer à travers chacun de ces 5 morceaux de section?

+0

Oui, je pense de cette façon, mais je voulais éviter cela. – Nips

Questions connexes