Непонятно, о чем вы спрашиваете, но, насколько я понимаю, ваш вопрос:
Какой самый элегантный способ передать альтернативный шаблон в представление
в баре?
Это не имеет ничего общего с URL-адресом conf, который просто сопоставляет URL-адреса с методами.
Шаблоны в django ищутся из местоположений в TEMPLATE_DIRS
в вашем файле settings.py, и что наиболее важно django перестанет искать, когда найдет шаблон .
Если ваш TEMPLATE_DIRS
пуст (как по умолчанию), тогда django будет искать шаблоны в каталоге templates
внутри любых зарегистрированных приложений (приложений, перечисленных в INSTALLED_APPS
).
Итак, чтобы передать альтернативный шаблон любому приложению, просто создайте файл с тем же именем (и структурой каталогов) в каталоге, который указан в TEMPLATE_DIRS
. Джанго будет сначала искать это и останавливаться, когда найдет совпадение.
Таким же образом вы переопределяете шаблоны администратора по умолчанию.
В вашем конкретном случае предположим, что вы хотите передать альтернативную версию index.html
в приложение bar
.
Создайте каталог override_templates
где-нибудь в пути вашего проекта.
Внутри этого каталога bar/templates/
и добавьте свой настроенный index.html
в этот каталог, чтобы вы получили override_templates/bar/templates/index.html
.
Добавьте полный путь к override_templates
к TEMPLATE_DIRS
в settings.py
.
Теперь django сначала выполнит поиск в вашем пользовательском каталоге любых запрошенных шаблонов и загрузит ваш альтернативный index.html.