django urlpattern placement

时间:2018-05-09 13:27:04

标签: django django-urls

在我的django应用程序中,有一个单独的auth用途应用程序。我的主要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视图放入我的auth应用程序并将其与'/ logout'绑定。只有一个网址('/ auth')导致我的auth应用程序在哪里以及如何将'/ logout'urlpattern放入?

1 个答案:

答案 0 :(得分:1)

如果您希望logout网址为/logout(没有/auth/前缀),则可以从包含中移除auth

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

]

请注意,这会影响您现有的身份验证网址模式,因此我更改了以下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')
]