@stadnikl2019

Как последовательно отображать по 5 элементов модели на странице и генерировать новые страницы при их недостатке (ссылками в навигации по страницам)?

Сколько искала, не нашла в интернете структуру, которую хочу получить.
В чем суть - хочу создать каталог книг, в котором будет выводиться по 5 элементов на странице. Можно ли это сделать более оптимальным способом, чем расписыванием каждой страницы каталога с перечислением pk именно тех элементов, которые необходимо вывести на каждой странице? И возможно ли сделать автоматическое добавление новых страниц (в том числе чтобы они отображались в html), если текцщих не хватает для отображения всего каталога?

Модель книги:
class Book(models.Model):
    author = models.CharField(max_length=300, verbose_name="Автор", null=True, blank=True)
    title = models.CharField(max_length=300, verbose_name="Заголовок")
    published_year = models.IntegerField(verbose_name="Год публикации")
    published_town = models.CharField(max_length=100, verbose_name="Город публикации")
    imprint = models.CharField(max_length=200, verbose_name="Издательство", null=True, blank=True)
    pages = models.IntegerField(verbose_name="Количество страниц", null=True, blank=True)
    image = models.CharField(max_length=300, verbose_name="Изображение", null=True, blank=True)

    def __str__(self):
        return self.title


Рендер:
def catalog(request):
    books = Book.objects.all()
    return render(request, 'history/catalog.html', {'books': books})


Вывод книг в HTML:
{% for book in books %}
            <p>{{ book.title }}</p>
            <p>{{ book.author }}</p>
{% endfor %}
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы