Dea*_*ean 33 django django-authentication
我一直在为django登录系统收到此错误.这是我的urls.py的一部分:
(r'^contractManagement/login', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
Run Code Online (Sandbox Code Playgroud)
我得到的确切错误:
Exception Type: NoReverseMatch
Exception Value: Reverse for ''django.contrib.auth.views.login'' with arguments '()' and keyword arguments '{}' not found.
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么我会收到此错误.如果您还需要其他信息,请告诉我.
Dan*_*man 44
您没有显示您尝试撤消此URL的位置,但看起来您已对其进行了双重引用.如果您使用的是url
标记,请注意您的网址名称周围不需要引号:
{% url django.contrib.auth.views.login %}
Run Code Online (Sandbox Code Playgroud)
不
{% url 'django.contrib.auth.views.login' %}
Run Code Online (Sandbox Code Playgroud)
hyn*_*cer 19
你看到''the.unknown.view''
报道包括太多qoutes.
这是因为引用的语法在Django 1.5及更高版本中有效.对于Django 1.3或1.4,您应该在模板中通过此行激活以后的行为:
{% load url from future %}
Run Code Online (Sandbox Code Playgroud)
这对Django 1.5也有效.
Django 1.5+的示例
{% url "path.to.some.view" %}
Run Code Online (Sandbox Code Playgroud)
Django <= 1.4.x(没有"future"命令)的经典语法是:
{% url path.to.some.view %}
Run Code Online (Sandbox Code Playgroud)
我会给你的url一个名字(为了做到这一点,你需要使用url方法)另外你应该为你的所有网址添加一个尾部斜杠,因为django CommonMiddleware将在你的所有网址上进行302重定向如果你不这样做:
from django.conf.urls.defaults import *
urlpatterns = patterns('',
url(r'^contractManagement/login/', 'django.contrib.auth.views.login', {'template_name': 'login.html'}, name='contract_login'),
)
Run Code Online (Sandbox Code Playgroud)
然后你可以在代码中使用reverse,或者在你的模板中使用url,如果你决定更改实际的url(即:changedCotractManagement/login /),只要名称相同,你的代码仍然会很好.
在代码中:
from django.core.urlresolvers import reverse
reverse('contract_login')
Run Code Online (Sandbox Code Playgroud)
在模板中:
{% url contract_login %}
Run Code Online (Sandbox Code Playgroud)
编辑:按照MrOodles
归档时间: |
|
查看次数: |
43919 次 |
最近记录: |