响应CreateAPIView DRF

4
我希望您能像这样返回CreateAPIView的响应结果。
Response(
            {
                'status': status_code.HTTP_200_OK,
                'message': 'Testimonials fetched',
                'data': serializer.data
             },)

但我不知道在AddAPIView内使用哪个函数才能获得上述的响应。

class AddAPIView(generics.CreateAPIView):
    queryset = Masjid.objects.all()
    serializer_class = serializers.MasjidAddSerialzer
    permission_classes = [IsAuthenticated]
1个回答

10

覆盖 AddAPIView 视图类的 create() 方法

class AddAPIView(generics.CreateAPIView):
        queryset = Masjid.objects.all()
        serializer_class = serializers.MasjidAddSerialzer
        permission_classes = [IsAuthenticated]

    def create(self, request, *args, **kwargs):
        response = super().create(request, *args, **kwargs)
        return Response({
            'status': 200,
            'message': 'Testimonials fetched',
            'data': response.data
        })

CreateAPIView 中使用 queryset = Masjid.objects.all() 的目的是什么? - haccks
generics.CreateAPIView 类中,除非我们显式地使用它们,否则 queryset 属性或 get_queryset() 方法没有任何效果。在这篇文章中,实际上是从 OP @haccks 复制粘贴的。 - JPG
想象一种情况,即此查询将加载数百万条记录。除非确实必要,否则最好不要在CreateAPIView中使用它。 - haccks
2
不会发生这种情况,因为Django QuerySets是惰性的 - JPG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接