Мы используем Django REST Framework для нашего API, и у нас есть необходимость разбивать поля отношений, которые возвращают несколько элементов.
Чтобы продемонстрировать примеры, похожие на те, что указаны в документации :
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'},
...
],
}
Это становится проблематичным, если в альбоме есть сотни треков. Есть ли способ разбивать "дорожки" в этом случае?
В идеале, я знаю, что в подобных случаях "дорожки" должны указывать на URL-адрес API, который просто возвращает треки для конкретного альбома, что, в свою очередь, легко разбивается на страницы. Нижняя сторона этого подхода, являющаяся дополнительным запросом (и, следовательно, задержкой и т.д.), Требовала получить даже первые несколько треков. В нашем случае важно, чтобы мы могли получить по крайней мере несколько треков с единственным запросом API альбома и затем динамически загружать остальную часть треков по мере необходимости.
Предлагает ли DRF какую-либо конкретную функцию или шаблон для этого? Или есть какая-нибудь работа вокруг?