Я думаю, что мне здесь не хватает основной концепции. В стереотипном проекте Django у вас будет два приложения, отвечающих на разные URL:
http://localhost/myproj/app1/33
http://localhost/myproj/app2/newcomment.html
Но какие существуют механизмы для обработки случаев, когда два приложения дополняют друг друга - скажем, одно предоставляет контент, а другое обеспечивает презентацию? Или, может быть, один - это контент, а другой - это некий статический контент, который должен появляться на каждой странице.
В частности, я не понимаю, как оба приложения могут использовать наследование шаблонов для расширения одного и того же шаблона. Представьте, что есть базовое приложение "baseapp" с шаблоном "base.html":
...
<div blah blah>
{% block content %}
{% endblock %}
...
Приложение 1 расширяет его:
{% extends "baseapp/templates/base.html" %}
{% block content %}
... here's the actual content...
{% endblock %}
Приложение 2 добавляет небольшой баннер или что-то в этом роде:
{% extends "baseapp/templates/base.html" %}
{% block content %}
<div class="banner">Please support our site!</div>
{{ block.super }}
{% endblock %}
Так как же отображаются оба шаблона? Я могу думать о:
- app1 может расширять шаблоны app2. Но это кажется неправильным: app1 является поставщиком контента и не должен зависеть от чего-то столь же тривиального, как app2.
- app2 может расширять шаблоны app1. Но это кажется неправильным: теперь схема URL должна будет направлять каждый URL через app2 (если я правильно понимаю)
- промежуточный слой
Как я уже сказал, я, вероятно, упускаю что-то очень простое. Или я делаю некоторые очень ошибочные предположения, о которых я не знаю. (Этот вопрос - моя третья попытка после Вставить дополнительное приложение Django на другую страницу, если это приложение присутствует и Как собирать и отображать информацию, внешнюю по отношению к моему веб-приложению, но относящуюся к пользователям этого ? - У меня проблемы с формулировкой проблемы.)