Python 如何对嵌套关系进行分页?
我读到: 您可以在相册序列化程序中看到Python 如何对嵌套关系进行分页?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我读到: 您可以在相册序列化程序中看到曲目: class TrackSerializer(serializers.ModelSerializer): class Meta: model = Track fields = ('order', 'title', 'duration') class AlbumSerializer(serializers.ModelSerializer): tracks = TrackSerializer(many=Tr
曲目
:
class TrackSerializer(serializers.ModelSerializer):
class Meta:
model = Track
fields = ('order', 'title', 'duration')
class AlbumSerializer(serializers.ModelSerializer):
tracks = TrackSerializer(many=True, read_only=True)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')
官网没有给出AlbumSerializer
中曲目的分页方法,如果曲目数量过大,如何实现曲目的分页
编辑
我想通过向API传递页码对其进行分页。
如果要构建分页,可以这样做:
from django.core.paginator import Paginator
def viewPage(request, page):
paginator = Paginator(data, 10) # 10 being how many objects per page you want, data being an array of tracks
try:
tracks = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
tracks = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
tracks = paginator.page(paginator.num_pages)
return render(request, 'view_page.html', {
'tracks': tracks,
})
您需要为Paginator()提供的数据是整个轨迹集合,作为一个iterable 你想怎么翻页?按特定页面参数?打开相册的详细视图后,您的下一步操作是什么?您需要自己处理。