世界要闻:Django REST Framework-视图集类型(二)

腾讯云   2023-04-29 16:43:09


【资料图】

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序列化器设置为默认序列化器。然后,我们手动实现了视图集的各种操作,包括列表查询、创建、详情查询、更新、部分更新和删除。

热文榜单