У меня есть контекстный словарь, содержащий данные для передачи в шаблон. Мне нужно переключить два деления на основе некоторой переменной флага, которую я реализовал с помощью тега шаблона {% with %}
Django. Однако, когда я пытаюсь установить переменную, используя синтаксис {% set %}
, я получаю следующую ошибку: - set', expected 'endwith'. Did you forget to register or load this tag?
Я следую решению, указанному здесь , но это дает мне ошибку.
index.html
{% with flag=1 %}
{% for benefit in content.benefits %}
<div style="background-color: #fff;" class="row mt-5">
{% if not flag %}
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="{% static "{{benefit.image}}" %}" alt="tablet"
class="img-responsive mx-auto mt-5 w-100 h-75 h-md-50 working-img">
</div>
{% endif %}
<div class="col-lg-8 col-md-8 col-sm-12 h-100">
{% for desc in benefit.heading %}
<div class="d-flex h-25 w-100 m-1 mt-4">
<div class="col-3 col-sm-2 h-100">
<div class="mx-auto">
<i class="fas fa-check fa-2x" style="color: #6fe33d"></i>
</div>
</div>
<div class="col-9 col-sm-10">
<div class="d-flex flex-column">
<div class="working-caption font-weight-bold">{{ desc }}</div>
{# <div class="py-2 working-description-courses text-muted">{{ description }}</div>#}
</div>
</div>
</div>
{% endfor %}
</div>
{% if flag %}
<div class="col-lg-4 col-md-4 col-sm-12">
<img src="{% static "{{benefit.image}}" %}" alt="tablet"
class="img-responsive mx-auto mt-5 w-100 h-75 h-md-50 working-img">
</div>
{% endif %}
</div>
{% endfor %}
{% set flag=1-flag %}
{% endwith %}
settings.py
...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'environment': 'myapp.jinja2.environment'
},
},
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
...