модели с Foreign Key сделать пагинацию для вложенной структуры?
Например помимо одной модели Book есть модель Author. Модель Book связана с моделью Author через Foreign Key к примеру. Это сделано для того, что например на сайте я мог сделать имя автора как ссылку (тэг условно говоря) и по нажатию на его имя перемещался на страницу где отображаются все книги этого автора.
class AuthorSerializer(serializers.ModelSerializer):
books = BookSerializer(many=True, read_only=True)
class Meta:
model = Authoe
fields = ["name", "slug", "books"]
lookup_field = {
'url': {'lookup_field': 'slug'}
}
И все отлично! У меня отображается список книг конкретного автора. Это выглядит как такая структура (скрин)
И кнги может быть тысячи, если это например Дарья Донцова. Как правильно сделать пагинацию для вложенной структуры books? Я сколько искал информацию так ничего и не нашел. Помогите пожалуйста.
django-filter глянь
https://www.django-rest-framework.org/api-guide/pagination/
пагинация из коробки работает, только для невложенных объектов. Работает отлично, я например использую PageNumberPagination, но если объект внутри другого объекта и их там тысяча, то он так эту тысячу и выводит не пагинируя nested объекты
тогда не вкладывай, сделай отдельный запрос под выдачу. ну или если очень хочется все в одном запросе, то добавь в сериализатор поля аля books_page, books_page_size и потом с этими цифрами отдельно уже плясать
вообще звучит как не очень хорошая идея
Обсуждают сегодня