4
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)

With an empty queryset - I am expecting a 404, but instead get a 200 with an empty serialized Response. What is wrong with my code? Why does exists() not work as expected?

david
  • 6,303
  • 16
  • 54
  • 91

1 Answers1

5

Try this:

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)
NearHuscarl
  • 66,950
  • 18
  • 261
  • 230