Дублирование шаблонов Django
Создал проект с несколькими приложениями (auth, blog). В каждом приложении создал папку templates. Но base.html для этих приложений одинаковый. Не хочется дублировать html код несколько раз, если какой-то другой вариант?
Шаблоны можно наследовать из соседнего приложения, также как и из текущего. Следующая запись будет справедлива для шаблона в приложении blog и для шаблона в приложении auth, если base.html находится в папке blog:
{% extends "blog/base.html" %}
Но я помещаю шаблоны в общую директорию в корне проекта, мне кажется это более очевидным и удобным. Для этого нужно добавить путь к директории в settings.py:
TEMPLATES = [
{
...
"DIRS": [os.path.join(BASE_DIR, "templates")],
...
},
]
Пример структуры директории templates:
templates
├── blog
│ ├── post_creation.html
│ ├── post_detail.html
│ ├── post_list.html
│ ├── post_multiple_creation.html
│ └── post_multiple_creation_success.html
├── auth
│ ├── logged_out.html
│ ├── login.html
│ ├── profile_edit.html
│ ├── profile.html
│ ├── registration.html
│ └── registration_success.html
├── 403.html
└── base.html