如何在get_queryset()中返回json?

时间:2019-02-22 09:32:19

标签: python json django django-queryset httpresponse

如果发生错误,我想从get_queryset()返回JSON格式的错误消息。有人知道热吗?

    def get_queryset(self):
        try:
            #some code that returns a queryset
        except:
            return Response({"status": "ERROR!"})

但是显然我无法做到这一点。 有谁知道如何解决这个问题?

一种可能的方法是以某种方式将消息转换为queryset并返回它。但是我不知道该怎么做!

1 个答案:

答案 0 :(得分:2)

我想,如果您想返回Response,则get_queryset()方法位于基于类的视图中。顾名思义,该方法本身只能返回QuerySet,尽管在视图内部您可以引发某些异常,这些异常由Django's built-in exception handling转换为响应。

您可以例如。引发Http404,Django将自动以404响应状态进行响应。

您可以customize等行为。返回JsonResponse而不是正常响应。