Еще раз о наследовании шаблонов Django

Трудность, с которой я столкнулся, точно описана в

Django Доступ к родительским данным в шаблонах из дочерних данных

Но ответ, данный там и принятый ОП, дан в духе "рецепта", как и невероятное количество других, которые я нашел, касающихся того же вопроса. Даже официальная документация django, вынужденная документировать чрезвычайно обширную область, страдает от этой болезни. Итак, поскольку я хотел бы получить не рыбу, а удочку, позвольте мне переформулировать вопрос в моих терминах:

У меня есть отцовский шаблон и дочерние шаблоны, последние заполняют один блок, определенный в отцовском шаблоне, по одному за раз.

Шаблон отца отображается вызовом вида-отца в файле father.py, с контекстом отца, а отношение вида-шаблона для отца задается строкой в некотором файле urls.py. При этом верхняя часть экрана браузера заполняется некоторым типом "сводных данных".

Когда это сделано, пришло время заполнить нижнюю часть различными видами детальной информации, разумеется, по очереди. Я делаю это с помощью различных дочерних представлений, используя в отцовском шаблоне идиомы типа

{% url ‘djangoapp:details1’ param1_a %} 

или

{% url ‘djangoapp:details2’ param2_a param2_b param2_c %}

и так далее.

Все эти "дочерние представления" генерируют различные "дочерние контексты", каждый из которых отправляется в свой собственный "дочерний шаблон", "{% extend %}"-соответствующий "отцовскому шаблону" выше.

Это работает, в том смысле, что заполняет нижнюю часть моей страницы, но верхняя страница в этот момент полна пустых мест.

Как я понимаю, это происходит потому, что дочерние контексты не содержат переменных, которые я использую в верхней части страницы. Поэтому я спрашиваю:

  1. Правильна ли моя интерпретация? и,
  2. Должен ли я исправить это, передавая в строках "url" над каждым и всеми параметрами полученных от отцовского шаблона, совершенно ненужных дочерним представлениям, только для того, чтобы дочерние представления включали их в свои дочерние контексты для окончательной передачи дочерним шаблонам?

По сути, это то, что было отвечено ОП в вопросе по ссылке выше.

Но их больше, чем 2-3, и они загромождали бы все: строки "url" выше, определение дочерних представлений, а также строки описания в файле urls.py. Поскольку мой случай кажется достаточно распространенным, мне кажется странным, что система django "наследования шаблонов" не была дополнена каким-то "наследованием контекста".

Спасибо за ответы или предложения.

Вернуться на верх