You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 4.0.6用social-auth-app-django遇DjangoStrategy无get_backend属性错误

解决'DjangoStrategy' object has no attribute 'get_backend'错误

原因分析

该错误多出现于ASGI模式(如使用Channels)环境下,social-auth默认的DjangoStrategy类未适配ASGI请求逻辑,导致缺失get_backend方法。

解决方案

方法1:自定义ASGI适配策略类

  1. 在项目任意业务app下创建strategies.py文件,写入如下代码:
from social_django.strategy import DjangoStrategy

class ASGIDjangoStrategy(DjangoStrategy):
    def get_backend(self):
        return self.backend
  1. 在settings.py中添加配置,指定使用自定义策略:
SOCIAL_AUTH_STRATEGY = '你的app名称.strategies.ASGIDjangoStrategy'

(将你的app名称替换为实际的app目录名)

方法2:升级social-auth依赖包

执行命令升级到支持ASGI的版本:

pip install --upgrade social-auth-core social-auth-app-django

建议升级至social-auth-core>=4.3.0、social-auth-app-django>=5.2.0,这两个版本对ASGI环境的兼容性更好。

额外检查项

  • 确认INSTALLED_APPS中已添加'social_django'
  • 确认谷歌OAuth2的SOCIAL_AUTH_GOOGLE_OAUTH2_KEY和SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET配置正确
  • 确认urls.py中已引入social-auth路由:
path('', include('social_django.urls', namespace='social')),

内容的提问来源于stack exchange,提问作者zdimon77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:36:18