Exemple #1
0
    def extend_paginator(cls, page_items: Page):
        """Дополняет объект постраничной навигации.

        :param page_items:

        """
        max_pages_before_after = 10
        page = page_items.number

        min_page_before = page - max_pages_before_after
        if min_page_before < 1:
            min_page_before = 0

        max_page_after = page + max_pages_before_after
        if max_page_after > page_items.paginator.num_pages:
            max_page_after = page_items.paginator.num_pages

        page_items.before_current = reversed(
            range(page - 1, min_page_before, -1))
        page_items.after_current = range(page + 1, max_page_after + 1)