gpt4 book ai didi

python - Django rest 框架 request.data 引发错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:05 25 4
gpt4 key购买 nike

我正在使用 Django Rest 框架。在我看来,都会引发错误,例如 request instance has no attribute 'data' 我尝试了很多但没有找到任何东西。我是否必须添加任何中间件或其他东西? DRF 如何从 request.POST 和 request.GET 中检索数据。我的观点是基于功能的。

def list(request, format=None):
if request.method == 'POST':
serializer = CustomerSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

最佳答案

@api_view 装饰器缺失。要在 DRF 中获取 request.data,您必须使用装饰器 @api_view 或从APIView 类如果您使用基于类的 View 。

从 rest_framework.decorators 导入 api_view

@api_view
def list(request):
if request.method == 'POST':
serializer = CustomerSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

对于从 APIView 扩展的基于类的 View

from rest_framework.views import APIView

class List(APIView):

def post(self, request):
serializer = CustomerSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

文档:DRF request

关于python - Django rest 框架 request.data 引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43972063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com