第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Django Rest Framework 中設(shè)置自定義分頁(yè)?

如何在 Django Rest Framework 中設(shè)置自定義分頁(yè)?

莫回?zé)o 2023-12-12 10:21:57
我正在嘗試為我的 API 端點(diǎn)設(shè)置自定義分頁(yè),如果 URL 中有過(guò)濾器,Django 必須返回特定數(shù)量的記錄,如果沒(méi)有任何過(guò)濾器,則必須返回另一數(shù)量的記錄。我有以下代碼:valid_filters = {'Name', 'Date'}def _has_valid_filters(iterable):    return not valid_filters.isdisjoint(iterable)class MyPagination(LimitOffsetPagination):    def get_page_size(self, request):        if _has_valid_filters(request.query_params.items()):            return 15        else:            return 30class MyView(viewsets.ModelViewSet):    pagination_class = MyPagination    http_method_names = ['get']    serializer_class = My_Serializer        def get_queryset(self):        valid_filters = {            'Name': 'Name',            'Date': 'Date__gte',        }        filters = {valid_filters[key]: value for key, value in self.request.query_params.items() if key in valid_filters.keys()}        queryset = Model.objects.filter(**filters)        return queryset這段代碼的問(wèn)題是分頁(yè)總是相同的。雖然MyPagination被調(diào)用,但看起來(lái)get_page_size由于某種原因從未被調(diào)用。誰(shuí)能幫我解決這個(gè)問(wèn)題嗎?
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊

我不認(rèn)為LimitOffsetPagination有一個(gè)已命名的方法get_page_size,因此它永遠(yuǎn)不會(huì)被調(diào)用。我相信你想要的就是get_limit()。

也就是說(shuō),我認(rèn)為以這種方式模糊頁(yè)面限制有點(diǎn)不穩(wěn)定,我相信這應(yīng)該由客戶(hù)端提供的查詢(xún)參數(shù)來(lái)控制。


查看完整回答
反對(duì) 回復(fù) 2023-12-12
  • 1 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)