我有一个使用django 1.4.2和python-social-auth。
的遗留应用程序我安装了应用
INSTALLED_APPS = (
...
'social.apps.django_app.default',
...
)
后端:
AUTHENTICATION_BACKENDS = (
'social.backends.facebook.FacebookAppOAuth2',
'social.backends.facebook.FacebookOAuth2',
'social.backends.google.GoogleOAuth',
'social.backends.google.GoogleOAuth2',
'social.backends.google.GoogleOpenId',
'django.contrib.auth.backends.ModelBackend',
)
更多设置......
SOCIAL_AUTH_FACEBOOK_ID = ''
SOCIAL_AUTH_FACEBOOK_SECRET = ''
SOCIAL_AUTH_ENABLED_BACKENDS=('facebook', 'google')
SOCIAL_AUTH_DEFAULT_USERNAME= lambda u: slugify(u)
在我的根网址:
urlpatterns += patterns('',
url('', include('social.apps.django_app.urls', namespace='social'))
但我仍然会收到此错误:
Template error:
In template /home/matias/Proyectos/apuntes/copias/templates/login.html, error at line 9
9 : <p>Ingresá con tu cuenta de <a class="login facebook" href=" {% url 'social:begin' 'facebook' %} {% if request.GET.next %}?next={{ request.GET.next }}{% endif %}">Facebook</a> </p>
Exception Type: NoReverseMatch at /login
Exception Value: u"'social" is not a registered namespace
我不知道遗漏了什么。据我所知,我有一切正确。
错误消息中的引用让我担心。但urls.py很好,所以也许它的django格式很有趣。
任何指针?
答案 0 :(得分:2)
版本未配置。对于低于1.5的django,您需要添加:
{% load url from future %}
正确的模板。
我很困惑,因为在文档https://docs.djangoproject.com/en/1.4/topics/http/urls/#defining-url-namespaces中关于网址分派的部分中没有列出这些内容。
我也不知道load
templatetag有from
参数......