2010-10-28 10 views
4

Je veux remplir une table avec une liste de résultats. Mais vous ne savez pas comment dire au modèle qu'il est temps de fermer le courant et de commencer un nouveau, après que 3 produits étaient déjà affichés dans le courant tr ....django: modèles pour remplir une table de 3 éléments d'affilée

Serait heureux si quelqu'un pouvait donner des conseils à ce sujet. Je cours django 1.1.1

Répondre

8

Le moyen le plus facile est d'utiliser le filtre divisibleby.

{% for item in results %} 
{% if forloop.counter0|divisibleby:3 %}<tr>{% endif %} 
<td>{{ item }}</td> 
{% if forloop.counter|divisibleby:3 %}</tr>{% endif %} 
{% endfor %} 
12

Encore mieux est d'ajouter une condition foorloop.last d'ajouter </tr> à la fin de la dernière ligne:

{% for item in results %} 
{% if forloop.counter0|divisibleby:3 %}<tr>{% endif %} 
<td>{{ item }}</td> 
{% if forloop.counter|divisibleby:3 or forloop.last %}</tr>{% endif %} 
{% endfor %} 
+0

Absolument! Cette réponse me manquait au premier coup d'œil et je me demandais pourquoi ma mise en page s'était brisée tout à coup :-) –