Pour Django, utilisez ** des balises et des filtres intégrés ** si vous souhaitez un traitement dynamique lors de l'utilisation de fichiers modèles. Par exemple, les instructions IF et For, ainsi que les extensions et les blocs. Voir ci-dessous pour plus de détails.
Référence: Balises et filtres intégrés
Ce que je veux faire cette fois, c'est le calcul du reste ** dans la balise ** if du modèle. Voici un exemple de code.
{% for user in users%}
{%si quand le reste est 1%}
<div class="columns is-mobile">
{% endif %}
<div class="column">
<div>
~réduction~
</div>
</div>
{%si quand le reste est 0%}
</div>
{% endif %}
{% endfor %}
Il existe une balise déjà fournie qui renvoie True si elle est divisible comme ** divisible par **, mais lorsque le reste est 1, ce processus, lorsque le reste est 2, ce processus ... Ne peux pas.
Dans un tel cas, vous pouvez le résoudre en préparant un ** modèle client **.
Commencez par créer les répertoires et fichiers suivants sous le projet.
project/
├ templatetags/
└ tags.py
Et ajoutez ce qui suit au fichier INSTALLED_APPS` `` du fichier `` `settings.py
settings.py
INSTALLED_APPS = [
'project',
]
Modifiez tags.py
comme suit
settings.py
from django import template
register = template.Library()
@register.filter
def modulo(num, val):
return num % val
Enfin, chargez la balise avec le modèle que vous souhaitez utiliser le modèle personnalisé.
{% load templates%}
est important.
{% load tags %}
~réduction~
{% for user in users%}
{% if forloop.counter|modulo:3 == 1 %}
<div class="columns is-mobile">
{% endif %}
<div class="column">
<div>
~réduction~
</div>
</div>
{% if forloop.counter|divisibleby:"3" %}
</div>
{% endif %}
{% endfor %}
Bonne vie à Django, tout le monde!
Recommended Posts