Django REST Framework-视图集类型(二)_全球观察
来源:腾讯云    2023-04-30 13:34:42


(相关资料图)

GenericViewSet

GenericViewSet继承自 GenericAPIView,它是 ModelViewSetReadOnlyModelViewSet的基类,提供了基本的视图操作,包括列表查询、详情查询、创建、更新和删除等。

ModelViewSetReadOnlyModelViewSet不同的是,GenericViewSet不自动绑定任何查询集和序列化器,需要手动配置。例如,我们可以在 views.py文件中定义一个 PublisherViewSet视图集:

from rest_framework import viewsetsfrom .models import Publisherfrom .serializers import PublisherSerializerclass PublisherViewSet(viewsets.GenericViewSet):    queryset = Publisher.objects.all()    serializer_class = PublisherSerializer    def list(self, request, *args, **kwargs):        # 列表查询操作        pass    def create(self, request, *args, **kwargs):        # 创建操作        pass    def retrieve(self, request, *args, **kwargs):        # 详情查询操作        pass    def update(self, request, *args, **kwargs):        # 更新操作        pass    def partial_update(self, request, *args, **kwargs):        # 部分更新操作        pass    def destroy(self, request, *args, **kwargs):        # 删除操作        pass

在这个例子中,我们使用 viewsets.GenericViewSet创建一个视图集,并将 Publisher模型的查询集设置为 Publisher.objects.all(),将 PublisherSerializer序列化器设置为默认序列化器。然后,我们手动实现了视图集的各种操作,包括列表查询、创建、详情查询、更新、部分更新和删除。

Copyright   2015-2022 西方玩具网 版权所有  备案号:沪ICP备2020036824号-7   联系邮箱:5 626 629 @qq.com

回顶部