Как прописать путь к HTML-шаблону находящемуся в другом приложении (django)?
После данной ветви цикла if я хочу сделать так, чтоб пользователю, после нажатия кнопки, отображало HTML-шаблон, находящейся в другом приложении этого же проекта. Проблема состоит в том, что я не могу прописать путь к данному HTML-шаблону.
if the_user.nick == nick and the_user.password == password:
current_person = {
'current_person_id': the_user.id,
'current_person_nick': the_user.nick,
'current_person_password': the_user.password,
'current_person_age': the_user.age
}
return render(request, '../USERS/4user/index.html', current_person)
Структура проекта следующая:
- base
- setting.py
- urls.py
- admin.py
- ...
- HOME
- setting.py
- urls.py
- admin.py
- views.py (в этом файле и прописан данный код)
- templates
- index.html
- ...
- USERS
- setting.py
- urls.py
- ...
- templates
- index.html (а к этому HTML я хочу прописать путь)
- ...
Ответы (1 шт):
Один из Ваших шаблонов переопределяет другой, поэтому при текущей структуре проекта Вы не сможете использовать оба.
Вы должны сделать пути до шаблонов уникальными (от директории templates). Документация рекомендует создать подкаталог (например, с именем приложения) в каждой папке templates:
It’s possible – and preferable – to organize templates in subdirectories inside each directory containing templates. The convention is to make a subdirectory for each Django app, with subdirectories within those subdirectories as needed.
Do this for your own sanity. Storing all templates in the root level of a single directory gets messy.
Пример:
├───HOME
│ └───templates
│ └───HOME
└───USERS
└───templates
└───USERS
Тогда Вы сможете обратиться к нужному шаблону так:
'USERS/index.html'