Paginar relacionamento no Django REST Framework?

Estamos usando o Django REST Framework para nossa API e temos a necessidade de paginar campos de relacionamento que retornam vários itens.

Para demonstrar o uso de exemplos semelhantes aos dodocumentação:

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

Exemplo de saída serializada para um álbum:

{
    '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'},
        ...
    ],
}

Isso se torna problemático onde há centenas de faixas no Álbum. Existe uma maneira de paginar as 'faixas' neste caso?

Idealmente, sei que em casos como esse, as "faixas" talvez apontem para uma URL da API que apenas retorna as Faixas para um Álbum específico - que, por sua vez, podem ser paginadas facilmente. O lado negativo dessa abordagem é a solicitação extra (e, portanto, o atraso, etc) necessária para obter as primeiras faixas. No nosso caso, é importante que possamos obter pelo menos algumas das faixas com a solicitação única para a API do álbum e, em seguida, carregar dinamicamente o restante das faixas conforme necessário.

O DRF oferece algum recurso ou padrão específico para isso? Ou há algum trabalho ao redor?

questionAnswers(4)

yourAnswerToTheQuestion