Url命名空间未注册为python social auth

时间:2014-02-21 18:41:55

标签: django url-routing django-socialauth

我有一个使用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 个答案:

答案 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参数......