我使用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'),
)
我做错了什么?
请帮助找到解决方案。
答案 0 :(得分:2)
你在django 1.3上。您是否使用{%load url from future%}添加了新的网址模板代码。如果你有,那么url标记的语法是不正确的,需要{%url'开始''google-oauth2'%}。如果还没有,那么你的语法是正确的。
您是否确保正确包含social_auth.urls?要执行此操作(启用调试),请手动转至http://yourdevserver/login/google-oauth2/并确保您没有看到404页面。如果你这样做,你将能够看到哪些网址在哪里尝试,这应该为你提供如何解决它的方向。