Разрешить нескольким приложениям использовать {% 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

Другие вопросы по тегам