响应 CreateAPIView DRF

Huz*_*yed 3 django django-rest-framework

我想要CreateAPIView这样的回复

Response(
            {
                'status': status_code.HTTP_200_OK,
                'message': 'Testimonials fetched',
                'data': serializer.data
             },)
Run Code Online (Sandbox Code Playgroud)

但我不知道最好在内部使用哪个函数AddAPIView来获得上述响应

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

JPG*_*JPG 8

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

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
        })
Run Code Online (Sandbox Code Playgroud)

  • 不,这不会发生,因为[Django QuerySets 是懒惰的](https://docs.djangoproject.com/en/3.1/topics/db/queries/#querysets-are-lazy) (2认同)