未为 python 社交身份验证注册的 url 命名空间



我有一个使用 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的论点......

最新更新