基于Mixin类重构视图类

from snippets.models import Snippet
from snippets.serializers import SnippetSerializer
from rest_framework import mixins
from rest_framework import generics

class SnippetList(mixins.ListModelMixin,
                  mixins.CreateModelMixin,
                  generics.GenericAPIView):
    # 雷打不动,必须的
    queryset = Snippet.objects.all()
    serializer_class = SnippetSerializer

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)
  • CreateModelMixin: 定义了创建一个序列对象的方法create(self, request, *args, **kwargs),保存方法perform_create(self, * * * serializer),成功获取请求头的方法:get_success_headers(self, data)
  • ListModelMixin: 定义了一个获取查询集的方法, many=True:list(self, request, *args, **kwargs)
  • RetrieveModelMixin: 定义了一个检索方法,retrieve(self, request, *args, **kwargs)
  • UpdateModelMixin: 更新一个模型实例,update(self, request, *args, **kwargs)
  • DestroyModelMixin: 删除一个模型实例,方法destroy(self, request, *args, **kwargs)
from snippets.models import Snippet
from snippets.serializers import SnippetSerializer
from rest_framework import mixins
from rest_framework import generics
# 重构单个实例处理方法
class SnippetList(mixins.ListModelMixin,
                  mixins.CreateModelMixin,
                  generics.GenericAPIView):
    queryset = Snippet.objects.all()
    serializer_class = SnippetSerializer

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • API Reference GenericAPIView This class extends REST fram...
    阳光小镇少爷阅读 2,624评论 0 1
  • Django: csrf防御机制 csrf攻击过程 1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登...
    lijun_m阅读 1,095评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 大千世界,人与人的交织,人与人之间的缘分,不就正是来自于一个又一个相遇么。当满怀憧憬,少男少女萌动的心相遇,...
    越沧海阅读 316评论 1 1
  • 第一次接触中医应该是大学时的学习,学的很粗略,到现在也是基本忘光了;后来接触时前阵子看了本逻辑学,里面谈到中医的治...
    飘piao阅读 109评论 0 0