Python social-auth-app-django'social'不是注册的名称空间 [英] Python social-auth-app-django 'social' is not a registered namespace

查看:84
本文介绍了Python social-auth-app-django'social'不是注册的名称空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Python(3.6)和Django(2.0)开发一个项目,在该项目中,我尝试使用 social-auth-app-django 软件包集成社交登录.

I'm working on a project with Python(3.6) and Django(2.0) in which I'm trying to integrate social login by using social-auth-app-django package.

users 应用中管理用户.

Managing users in the users app.

这是我的配置:

来自settings.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',
    'phone_field',
    'social_django',
]
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'social_django.middleware.SocialAuthExceptionMiddleware',

]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR, 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'social_django.context_processors.backends',  # <- Here
                'social_django.context_processors.login_redirect',
            ],
        },
    },
]
LOGIN_URL = 'users/login/'
AUTHENTICATION_BACKENDS = (
    'social_core.backends.open_id.OpenIdAuth',  # for Google authentication
    'social_core.backends.google.GoogleOpenId',  # for Google authentication
    'social_core.backends.google.GoogleOAuth2',  # for Google authentication
    'social_core.backends.linkedin.LinkedinOAuth2',  # for Github authentication
    'social_core.backends.facebook.FacebookOAuth2',  # for Facebook authentication
    'django.contrib.auth.backends.ModelBackend',
)

来自users/urls.py:

app_name = 'users'

urlpatterns = [
    path('signup/', views.SignUpView.as_view(), name='signup'),
    path('login/', views.LoginView.as_view(), name='login'),
    path('logout/', views.LogoutView.as_view(), name='logout'),
    url(r'^activate/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
        views.activate, name='activate'),
    url(r'^auth/', include('social_django.urls', namespace='social')),
]

SOCIAL_AUTH_URL_NAMESPACE = "users:social"

从login.html:

<div class="col-lg-12 center-aligned">
<div style="margin: auto">
    <div class="or-seperator"><b>or</b></div>
         <div class="social-btn text-center">
               <a href="{% url 'social:begin' 'facebook-oauth2' %}" class="btn btn-primary btn-lg" title="Facebook"><i class="fa fa-facebook"></i></a>
               <a href="{% url 'social_django.urls.url' %}" class="btn btn-info btn-lg" title="LinkedIn"><i class="fa fa-linkedin"></i></a>
               <a href="{% url 'social:begin' 'google-oauth2' %}" class="btn btn-danger btn-lg" title="Google"><i class="fa fa-google"></i></a>
        </div>
    </div>
</div>

当我加载 login 模板时,它返回以下错误:

When I load the login template it returns an error as:

异常类型:NoReverseMatch

Exception Type: NoReverseMatch

异常值:
社交"不是注册的名称空间

Exception Value:
'social' is not a registered namespace

推荐答案

根据更重要的是:

SOCIAL_AUTH_URL_NAMESPACE = 'social'

有空

SOCIAL_AUTH_URL_NAMESPACE = "users:social"

还应考虑,Social_AUTH_URL_NAMESPACE必须使用 settings.py 而不是 urls.py

Also consider that SOCIAL_AUTH_URL_NAMESPACE must be written in settings.py, not in urls.py

这篇关于Python social-auth-app-django'social'不是注册的名称空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆