Порядок отрисовки шаблонов Django... - проблема с include и partial и блоками
У меня есть:
ViewChild.html:
{% extends 'app1/parent.html' %}
{%block title%}
my title
{%endblock title%}
Затем у меня есть Parent.html:
{%include 'html_parts/modal_part.html' %}
В этом случае используется частичный вид:
{%block title%}
{%endblock title%}
К сожалению, вид отображается некорректно, т.е. 'my title' не отображается. (С приложением, путями и т.д. все в порядке. Все файлы помещены в правильные папки). Это только что-то с логикой рендеринга. Возможно, я не могу использовать в родительском представлении частичное, которое определяет блок, который будет заполнен дочерним представлением? Посоветуйте что-нибудь?
Причина, по которой «my title» не отображается, заключается в том, как работает include
. Из документации: include
«загружает шаблон и возвращает его с текущим контекстом.»
Это отличается от того, как block
работает в наследовании шаблонов: блок сообщает «шаблонизатору, что дочерний шаблон может переопределить эти части шаблона». (Documentation)
В вашем случае это означает, что вам нужно обновить Parent.html
, чтобы удалить {% include 'html_parts/modal_part.html' %}
и добавить {%block title %}
, что позволяет ViewChild.html to override the value of
title`.