來源:騰訊云
2023-04-30 14:21:36
(資料圖)
GenericViewSet
繼承自 GenericAPIView
,它是 ModelViewSet
和 ReadOnlyModelViewSet
的基類,提供了基本的視圖操作,包括列表查詢、詳情查詢、創(chuàng)建、更新和刪除等。
與 ModelViewSet
和 ReadOnlyModelViewSet
不同的是,GenericViewSet
不自動綁定任何查詢集和序列化器,需要手動配置。例如,我們可以在 views.py
文件中定義一個(gè) 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): # 創(chuàng)建操作 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
在這個(gè)例子中,我們使用 viewsets.GenericViewSet
創(chuàng)建一個(gè)視圖集,并將 Publisher
模型的查詢集設(shè)置為 Publisher.objects.all()
,將 PublisherSerializer
序列化器設(shè)置為默認(rèn)序列化器。然后,我們手動實(shí)現(xiàn)了視圖集的各種操作,包括列表查詢、創(chuàng)建、詳情查詢、更新、部分更新和刪除。
關(guān)鍵詞: