Работа с переменными в шаблоне Django требует некоторых манипуляций, следовательно в данной статье мы их и разберем
Содержание
Создайте тег шаблона:
Приложение должно содержать templatetagsкаталог, на том же уровне models.py, views.pyи т.д. Если это уже не существует, создайте его — не забудьте __init__.pyфайл , чтобы обеспечить каталог рассматривается как пакет Python.
Создайте файл с именем define_action.pyвнутри каталога templatetags со следующим кодом:
from django import template
register = template.Library()
@register.assignment_tag
def define(val=None):
return val
Примечание.
@register.assignment_tagиспользуется в Djnago1.9 в Djnago2.0 данный метод устарел и можно воспользоваться@register.simple_tagПримечание. Сервер разработки не будет автоматически перезагружен. После добавления
templatetagsмодуля вам нужно будет перезагрузить сервер, прежде чем вы сможете использовать теги или фильтры в шаблонах.
Затем в вашем шаблоне вы можете присвоить значения контексту следующим образом:
{% load define_action %}
{% if item %}
{% define "Edit" as action %}
{% else %}
{% define "Create" as action %}
{% endif %}
Would you like to {{action}} this item?
Пример использования проверки последовательности:
from django import template
register = template.Library()
@register.simple_tag
def define(val=None):
vals = 0
if val == 3:
vals == 1
else:
vals = int(val) + 1
return vals
<div class="container">
<div class="row">
{% define 0 as action %}
{% for k in bonus %}
{% if action == 3 %}
<div class="col-12 col-lg-2">
</div>
<div class="col-12 col-lg-2">
</div>
{% endif %}
<div class="col-12 col-lg-5">
123123
</div>
{% define action as action %}
{% endfor %}
</div>
</div>
В дальнейшем можно изменять данный код для Django работа с переменными в шаблоне. Удачной работы!
