我有一个使用 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格式很有趣。
有什么指示吗?
版本错误配置。对于低于 1.5 的 django,您需要添加:
{% load url from future %}
就在模板上。
我很困惑,因为这没有在文档 https://docs.djangoproject.com/en/1.4/topics/http/urls/#defining-url-namespaces 中有关 url 调度的部分中列出。
我也不知道load
模板标签有一个from
的论点......