Встроенный в Django url 'logout' обратный URL возвращает относительный путь

Искал, но не могу найти этот конкретный вопрос. Я создал отдельное приложение для аутентификации пользователя (имя: user) и включил URLS с помощью django.contrib.auth.urls. Вход в систему работает. Выход из системы не работает.

При использовании именованного представления {% url 'login' %} путь является абсолютным и работает нормально (т.е. http://host/user/login).
При использовании именованного представления {% url 'logout' %} в том же шаблоне, он получает относительный путь к моему отображаемому приложению. (т.е. http://host/app1/user/login)

Django Directory:

- djangoProject
  - djangoProject
  - app1
  - user

Настройки приложения Django (djangoProject/settings.py):

INSTALLED_APPS = [
    'crispy_forms',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user',
    'app1',
]

URLS приложения Django (djangoProject/urls.py)

urlpatterns = [
    path('app1/', include('app1.urls')),
    path('admin/', admin.site.urls),
    path('user/', include("django.contrib.auth.urls")),
    path('user/', include("user.urls")) // in case I add custom pages
]

User App URLS (user/urls.py - ничего не добавлено, так как используется из django.contrib.auth.urls):

urlpatterns = [

]

Виды приложений пользователя (user/views.py - ничего не добавлено. используется встроенный django.contrib.auth):

Теперь, в app1/templates/base.html, я использую следующее:

{% url 'login' %} - который генерирует URL - http://host/user/login/

{% url 'logout' %} - который генерирует URL - http://host/app1/user/logout

Если я вручную ввожу URL http://host/user/logout я выхожу из системы и перенаправляюсь правильно.

Есть какие-нибудь мысли? Большое спасибо!

@wfh18 решил проблему. Перемещение моих шаблонов в шаблоны с разграничением имен и соответствующее обновление путей внутри шаблонов решило проблему.

From:

- djangoProject
  - djangoProject
  - app1
    - templates
      - index.html
      - base.html
      - topbar.html
      - footer.html
      - sidebar.html
  - user
    - templates
      - login.html

to:

- djangoProject
  - djangoProject
  - app1
    - templates
      - app1
        - index.html
        - base.html
        - topbar.html
        - footer.html
        - sidebar.html
  - user
    - templates
      - user
        - login.html

И изменение любых ссылок на шаблоны с {% extends 'base.html' %} на {% extends 'app1/base.html' %} и т.д.

Вернуться на верх