Django 如何更改根URL配置以使用用户URL的命名空间

Django 如何更改根URL配置以使用用户URL的命名空间,django,django-authentication,Django,Django Authentication,站点范围的URL: from user import urls as user_urls app_name='user' urlpatterns = [ re_path(r'^user/',include(user_urls)), ] 由于admin应用程序,还定义了django/contrib/admin/sites.py中名为login和logout的URL模式。我需要Django指向用户应用程序 它仍然指向注册/login.html(即管理应用程序)。我尝试了名称空间,

站点范围的URL:

from user import urls as user_urls
app_name='user'

urlpatterns = [
    re_path(r'^user/',include(user_urls)),    
]
由于admin应用程序,还定义了
django/contrib/admin/sites.py中名为
login
logout
的URL模式。我需要Django指向用户应用程序

它仍然指向
注册/login.html
(即管理应用程序)。我尝试了名称空间,但它在Django 2.0中被删除了

user/url.py:

urlpatterns = [
    path(r'',RedirectView.as_view()),

    re_path(
        r'^login/$',auth_views.LoginView.as_view(template_name='user/login.html'), 
        name='login'
    ),

    re_path(
        r'^logout/$',auth_views.LogoutView.as_view(template_name='user/logged_out.html') 
, 
        {
            'extra_context':{'form':AuthenticationForm }
        }, name='logout'
    ),
]

为了在django 2中通过名称空间访问URL,您需要移动
app_name
属性,以便
user/url.py
将变为

app_name = 'user'
urlpatterns = [
    path(r'', RedirectView.as_view()),

    re_path(
        r'^login/$',auth_views.LoginView.as_view(), 
        {'template_name':'user/login.html'},
        name='login'
    ),

    re_path(
        r'^logout/$',auth_views.LogoutView.as_view(), 
        {
            'template_name':'user/logged_out.html',
            'extra_context':{'form':AuthenticationForm }
        },
        name='logout'
    ),
]
users.url
中定义的URL将具有
user
的应用程序命名空间

或者,您可以通过执行以下操作在同一文件中为URL命名名称空间:

user_patterns = ([
    path(r'', RedirectView.as_view()),

    re_path(
        r'^login/$',auth_views.LoginView.as_view(), 
        {'template_name':'user/login.html'},
        name='login'
    ),

    re_path(
        r'^logout/$',auth_views.LogoutView.as_view(), 
        {
            'template_name':'user/logged_out.html',
            'extra_context':{'form':AuthenticationForm }
        },
        name='logout'
    ),
], 'user')

urlpatterns = [
    re_path(r'^user/', include(user_patterns)),    
]
在这里可以找到关于此的文档