Разрешить нескольким приложениям использовать {% extension base.html %} в Django без конфликтов?
Я только недавно начал работать с Django и считаю, что должно быть хорошее решение этой проблемы!
После установки django-allauth через pip он попытался расширить base.html
от моего project/templates
папку, а не из своего собственного подкаталога. У этого пользователя была такая же проблема, и ему сказали переименовать один из base.html
файлы, а затем обновите все ссылки на него в соответствующих шаблонах приложений. Для сложного приложения (уже плохого) это подвержено ошибкам; еще хуже, если несколько сторонних приложений определяют свои собственные base.html
и ссылаясь на это просто как {% extends 'base.html' %}
, Кроме того, я думаю, что это применимо только к сторонним приложениям, так как я могу легко назвать base.html как-то по-разному для каждого из моих собственных приложений, но я не хочу возиться со сторонними приложениями, которые работают.
У меня вопрос: есть ли безопасный / простой способ разрешить использование нескольких сторонних приложений? {% extends 'base.html' %}
без столкновения?
Я прочитал документы по наследованию шаблонов в Django и понимаю, что:
- По умолчанию шаблоны загружаются сначала из файловой системы, а затем из подкаталогов приложения. Поэтому мой
projects/templates
каталог, который определен в моемTEMPLATE_DIRS
настройка, будет вызвана первой; отсюда проблема Джанго-Аллаута. - Я могу изменить этот порядок для первого вызова подкаталога приложения, изменив порядок
TEMPLATE_LOADERS
, Однако это просто означает, что мой сайт теперь будет расширяться неправильноbase.html
,
Хотя я могу исправить текущее столкновение, переименовав Аллаута base.html
как allauthbase.html
и изменение дочернего шаблона ссылки на него как {% extends 'allauthbase.html' %}
это кажется громоздким.
Наиболее странно, этот человек жалуется, что каждое приложение по умолчанию расширяет свой собственный base.html, но это кажется невозможным...
1 ответ
Кажется, есть открытая проблема, связанная с проблемой: https://github.com/pennersr/django-allauth/issues/370