Работа с переменными в шаблоне 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 работа с переменными в шаблоне. Удачной работы!