【发布时间】:2013-11-12 13:15:54
【问题描述】:
我正在使用 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',但这没有用。 - 如何一起删除所有字段。我想从响应中删除“count”和“previous”。
感谢我能得到的任何帮助。 谢谢。
【问题讨论】:
-
更改
'PAGINATE_BY_PARAM': 'limit'不会是 API 返回的page=n,它只是允许您使用其他替代方案。 -
@hcwhsa 感谢您的回复。我想可能是这样。你知道我如何在响应中更改它吗?
-
我已经发布了答案。
标签: python django django-rest-framework django-pagination