Мне было поручено исправить структуру шаблона в приложении Django. Я не очень знаком с Django, так как я имею дело в основном с внешними проектами, созданными в React.
Приложение Django использует Wagtail в качестве внутренней CMS. Я перебираю его страницы, включаю блок шаблона и пытаюсь передать переменные с помощью оператора with
в include
. Я могу успешно передать переменные в блок шаблона, но мне нужно перезаписать переменную «self», так как блок шаблона ищет self.something
.
Вот как выглядит мой шаблон.
{% load static wagtailimages_tags wagtailcore_tags %}
<div class="c-card {% if self.variant %}c-card--{{ self.variant }}{% endif %}">
{% if self.image %}
{% image self.image original class="c-card__image" loading="lazy" %}
{% endif %}
{% if self.title %}
<h3 class="c-card__title">{{ self.title }}</h3>
{% endif %}
{% if self.text %}
<p class="c-card__content">{{ self.text }}</p>
{% endif %}
{% if self.button.title and self.button.url %}
{% include './button_block.html' with button=self.button %}
{% endif %}
</div>
, а затем есть l oop и включающий фрагмент ...
{% for chapter_menu in page.chapters %}
<div class="medium-6 large-4 columns">
{{ chapter_menu.value.title }}
{% include './blocks/card_block.html' with self=chapter_menu.value %}
</div>
{% endfor %}
Выполнение этого self=chapter_menu.value
приводит к ошибке TypeError, которая ожидается, поскольку я определяю self
дважды. push() got multiple values for argument 'self'
Как я могу go сделать это? Любые документы, которые я могу прочитать, кроме базовых c django шаблонных документов? https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#with