django openid身份验证:模板语法错误
我正试图在我的django项目上设置django openid身份验证:模板语法错误,django,django-templates,django-openid-auth,Django,Django Templates,Django Openid Auth,我正试图在我的django项目上设置django openid auth。我已经按照的步骤1-8进行了操作,并尝试在我的服务器上转到/openid/login/。然而,当我进入该页面时,我看到 TemplateSyntaxError at /openid/login/ Could not parse the remainder: '-logo' from 'openid-logo'. The syntax of 'url' changed in Django 1.5, see the docs.
django openid auth
。我已经按照的步骤1-8进行了操作,并尝试在我的服务器上转到/openid/login/
。然而,当我进入该页面时,我看到
TemplateSyntaxError at /openid/login/
Could not parse the remainder: '-logo' from 'openid-logo'. The syntax of 'url' changed in Django 1.5, see the docs.
我有点困惑,因为这是在一个模板包括在应用程序-我没有写自己的模板。如果有人知道我做错了什么,我会非常感谢你的帮助
这是我的stacktrace:
Environment:
Request Method: GET
Request URL: http://localhost:8000/openid/login/
Django Version: 1.5.2
Python Version: 2.7.5
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'wseeruploader.apps.fileupload',
'django_openid_auth',
'crispy_forms')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Template error:
In template /usr/lib/python2.7/site-packages/django_openid_auth/templates/openid/login.html, error at line 8
Could not parse the remainder: '-logo' from 'openid-logo'. The syntax of 'url' changed in Django 1.5, see the docs.
1 : {% load i18n %}
2 : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3 : <html>
4 : <head>
5 : <title>Sign in with your OpenID</title>
6 : <style type="text/css">
7 : input.openid {
8 : background: url( {% url openid-logo %} ) no-repeat;
9 : background-position: 0 50%;
10 : padding-left: 16px;
11 : }
12 : </style>
13 : </head>
14 : <body>
15 : <h1>Sign in with your OpenID</h1>
16 : {% if form.errors %}
17 : <p class="errors">{% trans "Please correct errors below:" %}<br />
18 : {% if form.openid_identifier.errors %}
Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/site-packages/django_openid_auth/views.py" in login_begin
171. }, context_instance=RequestContext(request))
File "/usr/lib/python2.7/site-packages/django/shortcuts/__init__.py" in render_to_response
29. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
170. t = get_template(template_name)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in get_template
146. template, origin = find_template(template_name)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in find_template
135. source, display_name = loader(name, dirs)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in __call__
43. return self.load_template(template_name, template_dirs)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in load_template
49. template = get_template_from_string(source, origin, template_name)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in get_template_from_string
157. return Template(source, origin, name)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in __init__
125. self.nodelist = compile_string(template_string, origin)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in compile_string
153. return parser.parse()
File "/usr/lib/python2.7/site-packages/django/template/base.py" in parse
274. compiled_result = compile_func(self, token)
File "/usr/lib/python2.7/site-packages/django/template/defaulttags.py" in url
1266. viewname = parser.compile_filter(bits[1])
File "/usr/lib/python2.7/site-packages/django/template/base.py" in compile_filter
353. return FilterExpression(token, self)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in __init__
570. "from '%s'" % (token[upto:], token))
Exception Type: TemplateSyntaxError at /openid/login/
Exception Value: Could not parse the remainder: '-logo' from 'openid-logo'. The syntax of 'url' changed in Django 1.5, see the docs.
环境:
请求方法:获取
请求URL:http://localhost:8000/openid/login/
Django版本:1.5.2
Python版本:2.7.5
已安装的应用程序:
(“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.sites”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“django.contrib.admin”,
“django.contrib.admindocs”,
“wseeruploader.apps.fileupload”,
“django_openid_auth”,
"脆皮形式")
已安装的中间件:
('django.middleware.common.CommonMiddleware',
“django.contrib.sessions.middleware.SessionMiddleware”,
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
模板错误:
在template/usr/lib/python2.7/site-packages/django_openid_auth/templates/openid/login.html中,第8行出现错误
无法分析“openid徽标”中的其余部分:“-logo”。Django 1.5中“url”的语法已更改,请参阅文档。
1:{%load i18n%}
2 :
三:
4 :
5:使用您的OpenID登录
6 :
7:input.openid{
8:背景:url({%url openid logo%})不重复;
9:背景位置:0.50%;
10:左侧填充:16px;
11 : }
12 :
13 :
14 :
15:使用您的OpenID登录
16:{%if form.errors%}
17:{%trans”请更正以下错误:“%}
18:{%if form.openid_identifier.errors%}
回溯:
get_响应中的文件“/usr/lib/python2.7/site packages/django/core/handlers/base.py”
115响应=回调(请求,*回调参数,**回调参数)
login\u begin中的文件“/usr/lib/python2.7/site packages/django\u openid\u auth/views.py”
171. }, 上下文\实例=请求上下文(请求))
render\u to\u响应中的文件“/usr/lib/python2.7/site packages/django/shortcuts/\uuuuu init\uuuuuuuu.py”
29返回HttpResponse(loader.render_to_string(*args,**kwargs),**HttpResponse_kwargs)
render_to_字符串中的文件“/usr/lib/python2.7/site packages/django/template/loader.py”
170t=获取模板(模板名称)
get_模板中的文件“/usr/lib/python2.7/site packages/django/template/loader.py”
146模板,原点=查找模板(模板名称)
查找模板中的文件“/usr/lib/python2.7/site packages/django/template/loader.py”
135源,显示\u名称=加载程序(名称,目录)
调用中的文件“/usr/lib/python2.7/site packages/django/template/loader.py”__
43返回self.load\u模板(模板名称、模板目录)
load_模板中的文件“/usr/lib/python2.7/site packages/django/template/loader.py”
49模板=从字符串(源、源、模板名称)获取模板
文件“/usr/lib/python2.7/site packages/django/template/loader.py”,位于get\u template\u from\u字符串中
157返回模板(来源、来源、名称)
init中的文件“/usr/lib/python2.7/site packages/django/template/base.py”__
125self.nodelist=编译字符串(模板字符串,原点)
编译字符串中的文件“/usr/lib/python2.7/site packages/django/template/base.py”
153返回parser.parse()
解析中的文件“/usr/lib/python2.7/site packages/django/template/base.py”
274编译结果=编译函数(self,token)
url中的文件“/usr/lib/python2.7/site packages/django/template/defaulttags.py”
1266viewname=parser.compile\u过滤器(位[1])
编译过滤器中的文件“/usr/lib/python2.7/site packages/django/template/base.py”
353返回筛选器表达式(令牌、自身)
init中的文件“/usr/lib/python2.7/site packages/django/template/base.py”__
570“从'%s'”(令牌[最多:],令牌))
异常类型:TemplateSyntaxError位于/openid/login/
异常值:无法分析“openid徽标”中的其余部分:'-logo'。Django 1.5中“url”的语法已更改,请参阅文档。
因为您使用的是django-1.5
您应该更改:
{% url openid-logo %}
到
相关文件可在
这样做的结果是,如果在模板中没有使用{%loadurl from future%},则需要将类似{%url myview%}的标记更改为{%url“myview”%}。如果您使用的是{%loadurl fromfuture%},那么只需在Django1.5下删除该行即可
这是否意味着我必须在
/usr/lib/python2.7/site packages/django\u openid\u auth/templates/openid/login.html
中编辑模板?不,不应该。您应该覆盖模板,或者查看是否有django 1.5的更新
{% url 'openid-logo' %}