Skip to main content
 首页 » 编程设计

python之使用 django.auth 时 Django 1.9.1 NoReverseMatch

2025年05月04日38jiqing9006

我正在尝试按照“Django by Example”一书学习 Django,可能是由于版本冲突,我在尝试将 django.auth 与一些 URL 设置一起使用时遇到了这个问题 设置.py。 我现在感到非常沮丧,因为我什至不知道如何开始调试这个错误。任何帮助或建议将不胜感激 这是 settings.py 文件的相关部分

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

应用 View .py:

from django.shortcuts import render, redirect 
from django.shortcuts import HttpResponse 
from django.contrib.auth import authenticate, login, logout 
from .forms import LoginForm 
from django.contrib.auth.decorators import login_required 
# Create your views here. 
@login_required 
def dashboard(request): 
    return render(request, 'account/dashboard.html', {'section': 'dashboard'}) 

网址.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'), 
} 

主要 urls.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

更新的 settings.py :

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

请您参考如下方法:

当您使用 app_name 设置一个 namespace 时,当您在其他地方 include() 时将使用该 urls.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 路由的格式良好的列表。