gpt4 book ai didi

python - Django REST 错误返回对象列表

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:02 26 4
gpt4 key购买 nike

我正在使用 Django REST 框架来实现 Android 游戏的游戏服务器。我编写了一个从 GenericAPIView 派生的类来处理特定的 Http Post 请求。我希望请求返回之前从数据库查询的一些对象的列表。

我的代码如下所示:

class NewGameView(GenericAPIView):
serializer_class=NewGameRequestSerializer
def post(self, request, format=None):
serializer = NewGameRequestSerializer(data=request.DATA)
if serializer.is_valid():
req=serializer.save()

mygamedata=...; # request game data objects

serializer = MyGameDataSerializer(mygamedata, many=True)
return Response(serializer.data,status=status.HTTP_201_CREATED)
else:
return Response(status=status.HTTP_400_BAD_REQUEST)

当我通过curl访问此 View 时,一切都按预期进行。但是,当我使用 Django 生成的“可浏览 api”表单提交时,我收到了“ListSerializer”对象不可迭代“模板渲染”期间出错。如果我从 APIView 派生类,则不会发生错误,但 Django 将不再显示表单(无论出于何种原因)。

谁能解释一下这是怎么回事?

谢谢

最佳答案

您只需返回包含所需数据的字典即可。

class NewGameView(GenericAPIView):
serializer_class=NewGameRequestSerializer
def post(self, request, format=None):
serializer = NewGameRequestSerializer(data=request.DATA)
if serializer.is_valid():
req=serializer.save()

mygamedata=...; # request game data objects

data = {'game_name': mygame_object.name}
return Response(data,status=status.HTTP_201_CREATED)

关于python - Django REST 错误返回对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693663/

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