Verwenden Sie für Django ** integrierte Tags und Filter **, wenn Sie bei der Verwendung von Vorlagendateien eine dynamische Verarbeitung wünschen. Zum Beispiel IF- und For-Anweisungen sowie Erweiterungen und Blöcke. Siehe unten für Details.
Referenz: Integrierte Tags und Filter
Was ich diesmal machen möchte, ist die Restberechnung ** im ** if-Tag in der Vorlage. Unten finden Sie einen Beispielcode.
{% for user in users%}
{%wenn wenn der Rest 1 ist%}
<div class="columns is-mobile">
{% endif %}
<div class="column">
<div>
~Kürzung~
</div>
</div>
{%wenn wenn der Rest 0 ist%}
</div>
{% endif %}
{% endfor %}
Es gibt bereits ein Tag, das True zurückgibt, wenn es teilbar ist wie ** teilbar durch **, aber wenn der Rest 1 ist, dieser Prozess, wenn der Rest 2 ist, dieser Prozess ... Kann nicht.
In einem solchen Fall können Sie es lösen, indem Sie eine ** Kundenvorlage ** erstellen.
Erstellen Sie zunächst die folgenden Verzeichnisse und Dateien unter dem Projekt.
project/
├ templatetags/
└ tags.py
Und fügen Sie das folgende `INSTALLED_APPS
in die Datei
`` settings.py``` ein
settings.py
INSTALLED_APPS = [
'project',
]
Bearbeiten Sie tags.py
wie folgt
settings.py
from django import template
register = template.Library()
@register.filter
def modulo(num, val):
return num % val
Laden Sie abschließend das Tag mit der Vorlage, für die Sie die benutzerdefinierte Vorlage verwenden möchten.
{% load templates%}
ist wichtig.
{% load tags %}
~Kürzung~
{% for user in users%}
{% if forloop.counter|modulo:3 == 1 %}
<div class="columns is-mobile">
{% endif %}
<div class="column">
<div>
~Kürzung~
</div>
</div>
{% if forloop.counter|divisibleby:"3" %}
</div>
{% endif %}
{% endfor %}
Habt alle ein schönes Django-Leben!