异常值:渲染时捕获NoReverseMatch:使用参数'(u'google-oauth2',)'反转'begin'

时间:2011-07-26 17:30:59

标签: django django-templates

我使用django-social-auth进行谷歌授权(Oauth 2.0)并收到错误

Django Version: 1.3
Exception Type: TemplateSyntaxError
Exception Value:    
Caught NoReverseMatch while rendering: Reverse for 'begin' with arguments '(u'google-oauth2',)' and keyword arguments '{}' not found.
Exception Location: /usr/local/lib/python2.6/site-packages/django/template/defaulttags.py in render, line 450
Python Executable:  /usr/local/bin/python
Python Version: 2.6.6

模板

<a rel="nofollow" href="{% url begin "google-oauth2" %}"  ><img src="{{ MEDIA_URL }}social/google.png" id="google"></a>

url.py

urlpatterns = patterns('',    
    url(r'', include('social_auth.urls')),
)
social_auth.urls
urlpatterns = patterns('',
    url(r'^login/(?P<backend>[^/]+)/$', auth, name='begin'),
    url(r'^complete/(?P<backend>[^/]+)/$', complete, name='complete'),
    url(r'^associate/(?P<backend>[^/]+)/$', associate, name='associate_begin'),
    url(r'^associate/complete/(?P<backend>[^/]+)/$', associate_complete,
        name='associate_complete'),
    url(r'^disconnect/(?P<backend>[^/]+)/$', disconnect, name='disconnect'),
)

我做错了什么?

请帮助找到解决方案。

1 个答案:

答案 0 :(得分:2)

你在django 1.3上。您是否使用{%load url from future%}添加了新的网址模板代码。如果你有,那么url标记的语法是不正确的,需要{%url'开始''google-oauth2'%}。如果还没有,那么你的语法是正确的。

您是否确保正确包含social_auth.urls?要执行此操作(启用调试),请手动转至http://yourdevserver/login/google-oauth2/并确保您没有看到404页面。如果你这样做,你将能够看到哪些网址在哪里尝试,这应该为你提供如何解决它的方向。