【问题标题】:What is the proper way to check an empty queryset in Django?在 Django 中检查空查询集的正确方法是什么?
【发布时间】:2018-10-05 00:23:31
【问题描述】:
queryset = demo.objects.filter(name="non_existent_name")

if queryset.exists():
    serializer = DemoSerializer(queryset, many=True)
    return Response(serializer.data)
else:
    return Response(status=status.HTTP_404_NOT_FOUND)

使用空的查询集 - 我期待 404,但得到一个带有空序列化响应的 200。我的代码有什么问题?为什么 exists() 不能按预期工作?

【问题讨论】:

  • if queryset.exists(): 返回 True 且查询集为空
  • 你能发布完整的代码吗?
  • 或者你使用内置的快捷功能get_list_or_404Docs
  • @tatlar 该线程已有 10 年历史。

标签: django


【解决方案1】:

试试这个:

queryset = demo.objects.filter(name="non_existent_name")

if queryset:
    serializer = DemoSerializer(queryset, many=True)
    return Response(serializer.data)
else:
    return Response(status=status.HTTP_404_NOT_FOUND)

【讨论】:

    猜你喜欢
    • 2012-04-05
    • 2019-09-16
    • 1970-01-01
    • 2010-11-26
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    相关资源
    最近更新 更多