我们为我们的API使用Django REST框架,我们需要分页返回多个项目的关系字段。Django REST框架中的分页关系?
为了证明使用类似于在documentation例子:
class TrackSerializer(serializers.ModelSerializer):
class Meta:
model = Track
fields = ('order', 'title')
class AlbumSerializer(serializers.ModelSerializer):
tracks = TrackSerializer(many=True)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')
例串行输出为一个相册:
{
'album_name': 'The Grey Album',
'artist': 'Danger Mouse'
'tracks': [
{'order': 1, 'title': 'Public Service Annoucement'},
{'order': 2, 'title': 'What More Can I Say'},
{'order': 3, 'title': 'Encore'},
...
],
}
这成为问题,那里有说数百在相册轨道。在这种情况下,有没有办法对'曲目'进行分页?
理想情况下,我知道在这种情况下,'曲目'应该指向一个只返回某个特定专辑的曲目的API网址,而该网址可以轻松分页。这种方法的缺点是需要额外的请求(因此延迟等)才能获得前几个曲目。在我们的例子中,重要的是我们能够通过对Album API的单一请求获得至少一部分曲目,然后在需要时动态加载其余曲目。
DRF是否为此提供任何特定功能或模式?还是有任何解决办法?
注意事项以供将来参考。随后在Django REST框架邮件列表的[此线程](https://groups.google.com/d/msg/django-rest-framework/UtVRH8mHwmU/C6C5OhkEQ80J)中进行了跟踪。 – 2013-03-27 15:37:38