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

Django中出现AttributeError: 'Response' object has no attribute 'get'错误的求助

Django中出现AttributeError: 'Response' object has no attribute 'get'错误的求助

嗨,我来帮你排查这个问题!这个错误说白了就是你把Django(或者Django REST Framework,简称DRF)的Response对象当成字典来用了——get()是字典专属的方法,Response对象本身可没有这个属性哦,下面我给你拆解常见的出错场景和解决办法:

  • 场景1:误操作返回后的Response对象
    比如你可能先把字典数据包装成Response,然后又试图直接对这个Response调用get()拿值,代码大概是这样的:
def my_view(request):
    data = {"username": "SugengGod"}
    response = Response(data)
    # 这里出错了!Response对象没有get方法
    username = response.get("username")
    return response

解决办法:如果要操作数据,直接用原始的字典data就行;要是已经生成了Response,DRF的Response可以通过.data属性访问原始数据,Django原生的HttpResponse如果是JSON格式,得先解析内容:

# DRF Response的处理方式
username = response.data.get("username")

# Django原生HttpResponse(返回JSON的情况)
import json
response_data = json.loads(response.content)
username = response_data.get("username")
  • 场景2:中间件/装饰器里错误处理响应
    在中间件的process_response方法或者自定义装饰器里,你可能误把Response当成请求的字典数据来处理,比如想拿响应里的某个字段:
def check_response_decorator(view_func):
    def wrapper(request):
        response = view_func(request)
        # 错误:对Response用get方法
        if response.get("code") == 0:
            print("请求成功")
        return response
    return wrapper

解决办法:判断响应状态直接用response.status_code属性;要拿响应内容的话,还是参考上面的.data或者解析.content的方式。

  • 场景3:导入了错误的Response类
    有时候可能不小心导入了其他库的Response类,而非Django/DRF的,导致对象结构不对。检查你的导入语句:
# DRF项目请用这个导入
from rest_framework.response import Response
# Django原生项目用这个
from django.http import HttpResponse

确保你用的是对应框架的响应类,别和其他库的同名类搞混了。

备注:内容来源于stack exchange,提问作者SugengGod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 11:30:29