Джанго urlpattern размещения - PullRequest
0 голосов
/ 09 мая 2018

В моем приложении django есть отдельное приложение для аутентификации. Мой главный urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^auth/', include('auth.urls', namespace='auth'), name='auth'),
    ...
]

Мой auth urls.py

urlpatterns = [
    url(r'^$', views.log_in, name='auth'),
]

Теперь я хочу добавить вид выхода из системы в мое приложение аутентификации и связать его с помощью '/ logout'. Поскольку существует только один URL ('/ auth'), который ведет к моему приложению аутентификации, где и как я должен поместить '/ logout' urlpattern?

1 Ответ

0 голосов
/ 09 мая 2018

Если вы хотите, чтобы ваш logout URL был /logout (без префикса /auth/), вы можете удалить auth из списка включенных.

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('auth.urls', namespace='auth'), name='auth'),

]

Обратите внимание, что это повлияет на ваши существующие шаблоны URL авторизации, поэтому я изменил регулярное выражение для views.log_in ниже:

urlpatterns = [
    url(r'^auth$', views.log_in, name='auth'),
    url(r'^logout$', views.logout),
]

Другой вариант - оставить auth/urls.py как есть и добавить шаблон для logout в свой основной urls.py:

from auth.views import logout

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^auth/', include('auth.urls', namespace='auth'), name='auth'),
    url(r'^logout$', logout, name='logout')
]
...