Расширяет myapp base.html - не из другого приложения в моем проекте django - PullRequest
0 голосов
/ 18 марта 2019

Я написал проект Django, который включает в себя несколько приложений.Я создал base.html в своем приложении для пользователей, но я буду использовать base.html из моего приложения статей.Я использовал {% extends 'base.html' %} в общем, и я попытался:

{% extends 'articles:base.html' %} or {% extends 'articles/base.html' %}

и в myproject / settings.py

TEMPLATES = [
    ...
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    ...
]

, но они не работали.

Я быбудь рад, если кто-нибудь поможет мне.

1 Ответ

0 голосов
/ 18 марта 2019

Если ваш шаблон расположен users/templates/base.html, то вы должны использовать {% extends 'base.html' %}. Однако загрузчик шаблонов приложений Django останавливается, как только находит совпадение, поэтому будет использовать users/templates/base.html, если users выше articles в настройках INSTALLED_APPS.

По этой причине Django рекомендует создавать подкаталоги в каталоге шаблонов приложения. Затем сохраните ваши шаблоны как users/templates/users/base.html и articles/templates/articles/base.html. Теперь вы можете использовать {% extends 'articles/base.html' %} и {% extends 'users/base.html' %}, и имена ваших шаблонов не будут конфликтовать друг с другом.

...