Le module % dans Django template
Je suis à la recherche d'un moyen d'utiliser quelque chose comme le module opérateur dans django. Ce que j'essaie de faire est d'ajouter un nom de classe à chaque quatrième élément dans une boucle.
Avec du module, il ressemblerait à ceci:
{% for p in posts %}
<div class="post width1 height2 column {% if forloop.counter0 % 4 == 0 %}first{% endif %}}">
<div class="preview">
</div>
<div class="overlay">
</div>
<h2>p.title</h2>
</div>
{% endfor %}
Bien sûr, cela ne fonctionne pas car % est un caractère réservé. Est-il un autre moyen pour ce faire?
- Avez-vous même l'essayer? Django fournit la
templatetag
tag, mais qui couvre{%
,%}
, etc. (pas%
). - oui, je l'ai essayé, mais j'obtiens l'erreur suivante: impossible d'analyser le reste: '%' de '%' je suppose que c'est parce qu'il ne sait pas comment tape le modulor. L'opérateur est pas non plus inscrit sur les docs docs.djangoproject.com/en/dev/ref/templates/builtins/...
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin divisibleby, intégré dans django filtre.
divisibleby
, ce serait une bonne option aussi.Vous ne pouvez pas utiliser le module opérateur dans Django balises de modèle, mais il serait assez facile d'écrire un filtre pour le faire. Quelque chose comme ceci devrait fonctionner:
Et puis:
Vous pourriez même faire quelque chose comme ça, au lieu de:
Et puis:
Ou vous pouvez utiliser la
cycle
tag:Il semble que vous devriez utiliser le cycle de la balise.
Construit-dans les balises de modèle
Bootstrap de lignes et de colonnes par exemple.
Nouvelle ligne tous les 4 éléments. Également à proximité de la dernière ligne, même si il y a moins de 4 articles.
myapp/templatetags/my_tags.py
modèle html