С более новой версией Django
рекомендуется, чтобы статические файлы и шаблоны хранились внутри каталога, названного именем приложения. Напр. с более старыми версиями Django
, структура приложение, выглядела примерно так:Django base.html соглашение о расширении
app
├── admin.py
├── __init__.py
├── models.py
├── static
│ └── design.css
├── templates
│ ├── base.html
│ └── index.html
├── tests.py
└── views.py
в то время как с более новыми версиями, рекомендуемая структура выглядит следующим образом:
app
├── admin.py
├── __init__.py
├── models.py
├── static
│ └── app
│ └── design.css
├── templates
│ └── app
│ ├── base.html
│ └── index.html
├── tests.py
└── views.py
Теперь, как я должен получить доступ к staticfiles и шаблоны представление приложения в соответствии с новым макетом приложения? То есть при доступе к имени шаблона в представлении рекомендуется ли жестко указывать имя приложения?
def index(request):
return render(request, 'blog/index.html', {})
Аналогично, в шаблоне index.html
, который простирается base.html
, он должен ссылаться следующим образом:
{% extends "blog/base.html" %}
Опять же, это связано с именем жестко прописывать приложения в шаблоне. Это хорошая идея? Если я решит переименовать приложение, мне нужно будет внести изменения во множество файлов.
Или я отсутствует какой-либо параметр, который позволил бы мне передать base.html
, как
{% extends "base.html" %}
в своих шаблонах, избегая упоминать имя приложения?
awesome .. я никогда не знал, что 'extends' и 'include' существуют .. – user568021