GenericViewSet 继承自 GenericAPIView,它是 ModelViewSet 和 ReadOnlyModelViewSet 的基类,提供了基本的视图操作,包括列表查询、详情查询、创建、更新和删除等。
与 ModelViewSet 和 ReadOnlyModelViewSet 不同的是,GenericViewSet 不自动绑定任何查询集和序列化器,需要手动配置。例如,我们可以在 views.py 文件中定义一个 PublisherViewSet 视图集:
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 序列化器设置为默认序列化器。然后,我们手动实现了视图集的各种操作,包括列表查询、创建、详情查询、更新、部分更新和删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。