Title

5个视图扩展类

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': '成功'})
posted @   哈哈哈哼  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示