Django REST Framework-视图集类型(二)

2023-04-25 09:36:40 浏览数 (1)

GenericViewSet

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

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

代码语言:javascript复制
from rest_framework import viewsets
from .models import Publisher
from .serializers import PublisherSerializer

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

0 人点赞