报错提示
Traceback (most recent call last):
venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner response = get_response(request)
venv\lib\site-packages\django\utils\deprecation.py", line 136, in __call__ response = self.process_response(request, response)
venv\lib\site-packages\django\middleware\clickjacking.py", line 27, in process_response
if response.get("X-Frame-Options") is not None: AttributeError: 'Response' object has no attribute 'get'
原因:
视图函数 def func(request): 应该返回的是一个Django HttpResponse对象。但你直接把一个requests库的 Response 对象(requests请求获得response)直接return 给前端浏览器了。requests库的 Response 对象与Django的 HttpResponse 对象不同,它没有 get 方法来访问 HTTP 头信息
要解决这个问题,你可以将 requests 的响应内容转换为Django的 HttpResponse对象。
import requests
from django.http import JsonResponse
def your_view(request):
# 通过 requests 发送请求
response = requests.get('https://example.com/')
# 检查请求是否成功
if response.status_code == 200:
# 返回 JsonResponse 对象
return JsonResponse(response.json())
else:
# 返回错误响应
return JsonResponse({'error': 'Failed to fetch data'}, status=500)
Django视图函数返回对象报错及解决
706

被折叠的 条评论
为什么被折叠?



