我正在使用 Django REST 框架,我需要根据请求提供的 GET 参数对列表进行分页。
我知道我可以设置'PAGINATE_BY': 10
中进行设置,但是我希望允许调用者在发出请求时指定他们想要分页的号码。
我目前有以下序列化程序:
from api.models import Countries
from rest_framework import serializers
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)
def transform_iso(self, obj, value):
return "country_code"
我尝试了以下观点:
@api_view(['GET'])
def country_list(request):
"""
List all countries
"""
if request.method == 'GET':
queryset = Countries.objects.all()
serializer = CountrySerializer(queryset, many=True, data=request.DATA)
paginate_by = request.GET.get('limit', 10)
return Response(serializer.data)
但是我觉得我遗漏了一些东西,我无法从文档中弄清楚。
我应该在序列化程序还是视图中进行分页?
提前致谢。