Django NoReverseMatch和auth

时间:2014-07-06 20:41:54

标签: python django authentication login-required

我在这里处理一个简单的登录应用程序。我可以完美登录和注销。发生的事情是,当我退出并且我想测试如果尝试转到仅登录用户的页面会发生什么,我得到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'}),

问题是我不知道在哪里我必须为想要在没有登录的情况下访问受保护网址的用户设置网址。我已经尝试了“Login_required”(正如您在网址中看到的),我尝试过其他mixins,比如来自大括号的'LoginRequiredMixin'和Stronghold。这些都没有奏效。我想做的就是将这些用户(那些没有登录并试图欺骗系统的用户)重定向到loging.html。我在我的settings.py中有这个可能有帮助:

APPEND_SLASH = True

TEMPLATE_DEBUG = True

LOGIN_URL = 'login'


LOGIN_REDIRECT_URL = 'index'


LOGOUT_URL = 'logout'

我知道这个问题可能是广泛的,因为我很抱歉。 您需要的任何其他信息让我知道。比你非常

编辑:django正在展示:

   / Exi / index /的NoReverseMatch   使用参数'()'和找不到关键字参数'{}来反向'login'。尝试过0种模式:[]   请求方法:GET   请求网址:所以不允许我在这里显示链接   Django版本:1.6.5   异常类型:NoReverseMatch   例外价值:
  使用参数'()'和找不到关键字参数'{}来反向'login'。尝试过0种模式:[]   异常位置:_reverse_with_prefix中的C:\ Users \ Python \ Desktop \ TestScene \ lib \ site-packages \ django \ core \ urlresolvers.py,第452行   Python可执行文件:C:\ Users \ Python \ Desktop \ TestScene \ Scripts \ python.exe   Python版本:2.7.6   Python路径:
  [ 'C:\用户\的Python \桌面\ TestScene \ ExiAdmin',    'C:\用户\ Python的\桌面\ TestScene \ LIB \站点包\ mysql_python-1.2.5-py2.7-win32.egg',    'C:\ WINDOWS \ SYSTEM32 \ python27.zip',    'C:\用户\ Python的\桌面\ TestScene \ DLL文件',    'C:\用户\ Python的\桌面\ TestScene \ lib中',    'C:\用户\ Python的\桌面\ TestScene \ LIB \高原双赢',    'C:\用户\的Python \桌面\ TestScene \ lib中\ lib中-TK',    'C:\用户\ Python的\桌面\ TestScene \脚本',    'C:\ Python27 \库',    'C:\ Python27 \的DLL',    'C:\ Python27 \ LIB \ lib中-TK',    'C:\用户\ Python的\桌面\ TestScene',    'C:\用户\的Python \桌面\ TestScene \ lib中\站点包']

1 个答案:

答案 0 :(得分:0)

您需要将name='login'添加到登录URL定义的末尾,方法与使用索引一样。同样,对于注销URL。