【发布时间】:2016-06-24 15:41:01
【问题描述】:
我在让索引视图正常工作时遇到了一些问题。当数据库查询返回一个对象列表时,一切都很好。但是当查询为空时——因为还没有记录——响应并不是我所期望的:
if request.method == 'GET':
powers = Power.objects.get(hero=hero_id);
if powers:
serializer = PowerSerializer(powers)
return Response(serializer.data)
context = {"message": "This hero has no powers... yet!"}
return Response(context, status=status.HTTP_200_OK)
当英雄有能力时,上面的代码可以完美运行。但是当英雄没有能力时,我希望看到自定义消息,但我却收到了HTTP 404 Not Found。我尝试更改为status=status.HTTP_204_NO_CONTENT,但没有区别——弹出相同的404。由于我以前从未开发过 API,我不太确定事情是否应该这样工作。
我梳理了文档,发现的只是如何处理 一个 不存在的资源 — 使用 return Response(status=status.HTTP_404_NOT_FOUND)。那么如何处理不存在的多个资源列表?
请指教。
【问题讨论】:
-
@rnevius 即使我返回 None,我如何让 API 响应我在上下文对象中提供的自定义消息?
-
@Duos 我的回答对你有帮助吗?如果是,请接受。
-
@ilse2005 这没有帮助,但我赞成你的回答,因为它给了我一个全新的视角。
标签: django django-rest-framework