У меня есть проект Django под названием reports
с приложениями report_1
, report_2
и т. Д.
По некоторым причинам я хочу рассматривать проект как приложение, поэтому я добавил reports
к INSTALLED_APPS
вместе с report_1
и report_2
, а также создал файл views.py
и папку templates
в Основная папка проекта (где settings.py
сидит).
В urls.py
я добавил app_name = reports
.
Однако вызов URL из шаблона будет работать только в том случае, если я пропущу имя приложения: поэтому {% url 'reports:index' %}
выдаст
'reports' не является зарегистрированным пространством имен '
ошибка, но {% url 'index' %}
будет работать.
Почему это так? Я думал, что Django обходит все приложения, перечисленные в INSTALLED_APPS
, ищет app_name
(который предоставляется) и сопоставляет его с именем URL.