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

Django集成dj-rest-auth谷歌登录报错:AttributeError: module 'BackendApp.views.GoogleLogin' has no attribute 'as_view'

解决AttributeError: module 'BackendApp.views.GoogleLogin' has no attribute 'as_view'问题

这个错误的根源很明确——你在urls.py里的导入逻辑错了,把整个模块文件当成了模块里的类来引用,自然找不到as_view()方法(这个方法是Django类视图CBV才有的属性)。

具体修复步骤:

  1. 修正urls.py中的导入语句
    你当前的导入是:
from BackendApp.views import GoogleLogin

这行代码实际导入的是BackendApp/views/GoogleLogin.py这个文件模块,而不是模块里的GoogleLogin类。把它改成:

from BackendApp.views.GoogleLogin import GoogleLogin

这样才会正确导入你定义的那个继承了SocialLoginView的类,调用.as_view()就不会报错了。

  1. 修正回调地址的笔误
    看你的GoogleLogin.py里的callback_url有个明显的拼写错误:
callback_url = "http://localhost:8000/accounts/google/login/callbaccontent.comk"

把它改成和你在Google开发者控制台里配置一致的回调地址,比如:

callback_url = "http://localhost:8000/accounts/google/login/callback/"

这个地址不匹配的话,后续谷歌登录流程也会失败。

  1. 补充SITE_ID配置
    因为你在INSTALLED_APPS里加了django.contrib.sites,记得在settings.py里加上:
SITE_ID = 1

这是allauth依赖的核心配置项,缺了会导致社交登录流程抛出异常。

额外验证项:

  • 确认你的GoogleLogin类确实正确继承了SocialLoginView(你的代码里是对的,这个类基于DRF的APIView,自带as_view()方法)
  • 重启Django开发服务器,确保所有代码修改都生效
  • 核对SOCIALACCOUNT_PROVIDERS里的谷歌应用凭证(client_id、secret)和谷歌开发者控制台里的信息完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 13:54:10