【问题标题】:How to return a json in get_queryset()?如何在 get_queryset() 中返回 json?
【发布时间】:2019-07-16 08:45:01
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这不是你想做的事情。 get_queryset 应该返回一个查询集,因此得名。您需要在视图的其他位置执行此操作。
  • get_queryset 是 ModelManager 上的一个方法。您介意使用包含实现 get_queryset() 的类的代码 sn-p 更新您的问题吗?

标签: python json django django-queryset httpresponse


【解决方案1】:

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

你可以例如。提出Http404,Django 将自动以 404 响应状态响应。

这种行为你可以customize 和例如。返回 JsonResponse 而不是正常响应。

【讨论】:

    猜你喜欢
    • 2021-03-05
    • 1970-01-01
    • 2019-07-07
    • 2020-09-09
    • 2018-12-27
    • 1970-01-01
    • 2022-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多