Django 1.9.1使用时的NoReverseMatchDjango.auth公司

2024-04-25 04:17:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过遵循《django by Example》一书来学习django,可能是由于版本冲突,我在尝试使用时遇到了这个问题django.auth公司以及一些URL设置 设置.py. 我现在非常沮丧,因为我甚至不知道如何开始调试这个错误。任何帮助或建议将不胜感激 以下是设置.py文件

from django.core.urlresolvers import reverse_lazy
LOGIN_REDIRECT_URL = reverse_lazy('dashboard')
LOGIN_URL = reverse_lazy('login')
LOGOUT_URL = reverse_lazy('logout')

应用程序视图.py公司名称:

^{pr2}$

在网址.py在

from django.conf.urls import url
from . import views

app_name = 'account'
urlpatterns = {
    url(r'^$', views.dashboard, name='dashboard'),
    url(r'^login/$', 'django.contrib.auth.views.login', name='login'),
    url(r'^logout/$', 'django.contrib.auth.views.logout', name='logout'),
    url(r'^logout-then-login/$', 'django.contrib.auth.views.logout_then_login', name='logout_then_login'),
}

主网址.py公司名称:

from django.conf.urls import url, include
from django.contrib import admin

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

]

Error Message

更新设置.py公司名称:

LOGIN_REDIRECT_URL = reverse_lazy('account:dashboard')
LOGIN_URL = reverse_lazy('account:login')
LOGOUT_URL = reverse_lazy('account:logout')

Tags: djangonamefrompyimportauthurllogin
1条回答
网友
1楼 · 发布于 2024-04-25 04:17:06

当您使用app_name来设置一个命名空间时,当您include()时将使用该命名空间网址.py在别的地方。在

因此没有名为"login"的url,而是名为"account:login",这是必须传递给reverse()的名称。在

LOGIN_REDIRECT_URL = reverse_lazy('account:dashboard')
LOGIN_URL = reverse_lazy('account:login')
LOGOUT_URL = reverse_lazy('account:logout')

相关文件:URL namespaces and included URLconfs

如果您使用的是django-extensions(您应该使用),那么可以使用管理命令show_urls获得项目中注册的所有url路由的格式良好的列表。在

相关问题 更多 >