5个视图扩展类

发布时间 2023-05-22 19:57:35作者: 哈哈哈哼

5个视图扩展类

 5个视图扩展类
from rest_framework.mixins import ListModelMixin, CreateModelMixin, UpdateModelMixin, RetrieveModelMixin, \
    DestroyModelMixin


class ListModelMixin:
    def list(self, request):
        queryset = self.get_queryset()
        ser = self.get_serializer(queryset, many=True)
        return Response({'code': 100, 'msg': '成功', 'results': ser.data})


class CreateModelMixin:
    def create(self, request):
        ser = self.get_serializer(data=request.data)
        if ser.is_valid():
            ser.save()
            return Response({'code': 100, 'msg': '成功', 'results': ser.data})
        return Response({'code': 100, 'msg': '失败', 'results': ser.errors})


class UpdateModelMixin:
    def update(self, request, *args, **kwargs):
        queryset = self.get_object()
        ser = self.get_serializer(queryset, many=False, data=request.data)
        if ser.is_valid():
            ser.save()
            return Response({'code': 100, 'msg': '成功', 'results': ser.data})
        return Response({'code': 100, 'msg': '失败', 'results': ser.errors})


class RetrieveModelMixin:
    def retrieve(self, request, *args, **kwargs):
        queryset = self.get_object()
        ser = self.get_serializer(queryset, many=False)
        return Response({'code': 100, 'msg': '成功', 'results': ser.data})


class DestroyModelMixin:
    def destroy(self, request, *args, **kwargs):
        self.get_object().delete()
        return Response({'code': 100, 'msg': '成功'})