我在这里处理一个简单的登录应用程序。我可以完美地登录和注销。发生的事情是,当我注销并且我想测试如果尝试转到只有登录用户可以看到的页面时会发生什么,我得到了 NoReverseMatch 异常。我查看文档并:“当您的 URLconf 中的匹配 URL 无法根据提供的参数识别时,django.core.urlresolvers 会引发 NoReverseMatch 异常。” 这是我的网址:
url(r'^login/', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
url(r'^index/', login_required(Index.as_view(template_name= "index.html")), name = 'index'),
url(r'^logout/', 'django.contrib.auth.views.logout', {'template_name': 'logout.html'}),
问题是我不知道我必须在哪里为想要在不登录的情况下转到受保护的 url 的用户设置 url。我已经尝试过“Login_required”(正如你在 url 中看到的那样),我试过了其他 mixin,如大括号中的 'LoginRequiredMixin' 和 Stronghold。这些都没有奏效。我要做的就是将那些用户(未登录并试图欺骗系统的用户)重定向到 logging.html。我的 settings.py 中有这个,也许它有帮助:
APPEND_SLASH = True
TEMPLATE_DEBUG = True
LOGIN_URL = 'login'
LOGIN_REDIRECT_URL = 'index'
LOGOUT_URL = 'logout'
我知道这个问题可能很广泛,对此我很抱歉。如果您需要任何其他信息,请告诉我。非常比你
编辑:这就是 django 所显示的:
NoReverseMatch at /Exi/index/ Reverse for 'login' with arguments '()' 和关键字参数 '{}' 未找到。尝试了 0 种模式:[] 请求方法:GET 请求 URL:所以不允许我在此处显示链接 Django 版本:1.6.5 异常类型:NoReverseMatch 异常值:
使用参数“()”反转“登录”并且找不到关键字参数“{}”。尝试了 0 种模式:[] 异常位置:C:\Users\Python\Desktop\TestScene\lib\site-packages\django\core\urlresolvers.py 在 _reverse_with_prefix,第 452 行 Python 可执行文件:C:\Users\Python \Desktop\TestScene\Scripts\python.exe Python 版本:2.7.6 Python 路径:
['C:\Users\Python\Desktop\TestScene\ExiAdmin', 'C:\Users\Python\Desktop\TestScene\lib\site-packages\mysql_python-1.2.5-py2.7-win32.egg', ' C:\Windows\system32\python27.zip', 'C:\Users\Python\Desktop\TestScene\DLLs', 'C:\Users\Python\Desktop\TestScene\lib', 'C:\Users\Python\ Desktop\TestScene\lib\plat-win'、'C:\Users\Python\Desktop\TestScene\lib\lib-tk'、'C:\Users\Python\Desktop\TestScene\Scripts'、'C:\Python27 \Lib'、'C:\Python27\DLLs'、'C:\Python27\Lib\lib-tk'、'C:\Users\Python\Desktop\TestScene'、'C:\Users\Python\Desktop\TestScene \lib\site-packages']