如何对嵌套关系进行分页?

2024-04-27 14:48:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我读了django-rest-framework nested-relationships

您可以在AlbumSerializer中看到tracks

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')

官方网站没有给出对AlbumSerializertracks进行分页的方法,如果曲目数量过大,如何实现对曲目的分页?在


编辑

我想通过向API传递一个页码来对它进行分页。在


Tags: djangoresttruefieldsmodelframework曲目meta
1条回答
网友
1楼 · 发布于 2024-04-27 14:48:08

Django have some paginator classes that can help you build it on your own.

如果要建立分页,可以这样做:

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,
    })

所有的数据都是不可编辑的。在

相关问题 更多 >