3 回答

TA貢獻1842條經(jīng)驗 獲得超13個贊
只有在使用通用視圖或視圖集時才會自動執(zhí)行分頁
閱讀文檔
并回答你的第二個問題 DRF 中的 GenericViewset 和 Viewset 有什么區(qū)別
DRF 有兩個主要的處理視圖的系統(tǒng):
APIView:這提供了一些處理方法,來處理HTTP動詞:
get
,post
,put
,patch
,和delete
。ViewSet:這是對 APIView 的抽象,它提供操作作為方法:
list
:只讀,返回多個資源(http 動詞:)get
。返回一個字典列表。retrieve
:只讀,單一資源(http 動詞:get
,但需要一個 id)。返回單個字典。create
:創(chuàng)建一個新的資源(HTTP動詞:post
)update/partial_update
:編輯資源(HTTP動詞:put/patch
)destroy
:刪除一個資源(HTTP動詞:delete
)GenericViewSet:GenericViewSet有很多,最常見的是
ModelViewSet
. 他們繼承GenericAPIView
并具有全面實施所有的行動:list
,retrieve
,destroy
,updated
,等等。當然,你也可以挑選其中的一些,閱讀文檔。

TA貢獻1836條經(jīng)驗 獲得超4個贊
也只是從 GenericViewSet 繼承。例如:
#views.py
class PolicyViewSet(viewsets.ViewSet, viewsets.GenericViewSet):
def list(self, request):
queryset = Policy.objects.all()
page = self.paginate_queryset(queryset)
serializer = PolicySerializer(page, many=True)
return self.get_paginated_response(serializer.data)

TA貢獻1877條經(jīng)驗 獲得超6個贊
如何使用普通視圖集設(shè)置分頁?
如果你想在你的視圖集中使用“pagination_class”,那么你應(yīng)該使用GenericViewSet而不是ViewSet。
添加回答
舉報