¿Paginar relación en el framework REST de Django?

Estamos utilizando Django REST Framework para nuestra API y tenemos la necesidad de paginar los campos de relaciones que devuelven varios elementos.

Para demostrar utilizando ejemplos similares a los de ladocumentación:

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

Ejemplo de salida serializada para un á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'},
        ...
    ],
}

Esto se vuelve problemático cuando hay cientos de pistas en el Álbum. ¿Hay una manera de paginar las "pistas" en este caso?

Idealmente, sé que en casos como este, las "pistas" deberían apuntar a una URL de API que simplemente devuelve las pistas para un álbum en particular, que a su vez puede paginarse fácilmente. El lado negativo de este enfoque es la solicitud adicional (y, por lo tanto, la demora, etc.) necesaria para obtener incluso las primeras pistas. En nuestro caso, es importante que podamos obtener al menos algunas de las pistas con la solicitud única a la API del álbum y luego cargar dinámicamente el resto de las pistas cuando sea necesario.

¿El DRF ofrece alguna característica o patrón específico para esto? ¿O hay algún lugar para trabajar?

Respuestas a la pregunta(4)

Su respuesta a la pregunta