我正在使用Django REST Frameworks Paginator对从数据库中读取的JSON响应进行分页。
我当前的serializers.py文件如下所示:
class CountrySerializer(serializers.Serializer):
country_geoname_id = serializers.CharField(required=True)
country_code = serializers.CharField(source="iso", max_length=2L, required=True)
country_name = serializers.CharField(max_length=64L, required=True)
paginate_by_param = "offset"
def transform_iso(self, obj, value):
return "country_code"
class PaginatedCountrySerializer(pagination.PaginationSerializer):
paginate_by_param = "offset"
class Meta:
object_serializer_class = CountrySerializer
paginate_by_param = "offset"
请求/响应目前如下所示:
GET /v4/api/v1/countries/?limit=1&offset=1
{
"count": 250,
"next": "http://dev.fanmode.com/v4/api/v1/countries/?limit=2&page=2&offset=1",
"previous": null,
"results": [
{
"country_geoname_id": 3041565,
"country_code": "AD",
"country_name": "Andorra"
},
...
]
}
有人可以通过告诉我来帮助我:
next
字段中将'page = 2'更改为'limit = 2'。我在settings.py文件中尝试了'PAGINATE_BY_PARAM': 'limit'
,但这不起作用。感谢我能得到的任何帮助。 感谢。
答案 0 :(得分:1)
您可以更改pagination.py
文件中page_field
课程中的NextPageField
,将名称从page
永久更改为limit
。
对于第二部分,您可以编写自己的custom PaginationSerializer
:
from rest_framework.pagination import BasePaginationSerializer, NextPageField
class MyPaginationSerializer(BasePaginationSerializer):
next = NextPageField(source='*')
现在只返回next
和results
字段。