2015-02-11 14 views
0

Недавно я только начал с Django и предположил, что должно быть хорошее решение для этой проблемы!Разрешить нескольким приложениям использовать {% extend base.html%} в Django без столкновения?

После установки django-allauth через pip он попытался расширить base.html из моей папки project/templates, а не из собственного подкаталога. This user имел такую ​​же проблему, и ему было предложено переименовать один из файлов base.html, а затем обновить все ссылки на него в связанных шаблонах приложений. Для сложного приложения (уже плохое) это подвержено ошибкам; это еще хуже, если несколько сторонних приложений каждый определяют свои собственные base.html и ссылаются на него просто как {% extends 'base.html' %}. Кроме того, я думаю, что это относится только к сторонним приложениям, так как я могу легко назвать base.html чем-то другим для каждого из моих собственных приложений, но я не хочу вмешиваться в работу сторонних приложений.

Мой вопрос: есть безопасный/простой способ разрешить нескольким сторонним приложениям использовать {% extends 'base.html' %} без столкновения?

Я прочитал документацию на template inheritance в Django и понять, что:

  • По умолчанию шаблоны загружаются из файловой системы, а затем из приложения подкаталогов. Поэтому сначала будет вызываться каталог projects/templates, который определен в моей настройке TEMPLATE_DIRS; следовательно, проблема джанго-аллаута.
  • Я могу отменить этот порядок для подкаталога приложения, который будет вызываться первым, изменив порядок TEMPLATE_LOADERS. Однако это просто означает, что мой сайт теперь будет распространяться неправильно base.html.

Хотя я могу зафиксировать текущее столкновение путем переименования base.html как allauthbase.html и изменение ссылок шаблона ребенка allauth к нему, как {% extends 'allauthbase.html' %}, это кажется громоздким.

Большинство wierdly, this person жалуется, что каждое приложение расширяет свою собственную base.html по умолчанию, но это кажется невозможным ...

ответ

0

Кажется, есть открытый вопрос, связанный с проблемой: https://github.com/pennersr/django-allauth/issues/370

+0

Спасибо, я этого не видел. Тем не менее, я хотел бы знать, есть ли решение, или если такие приложения считаются плохо разработанными. – ZG101