Покажите количество объектов страницы в django разбиении на страницы

На *отклоните:

$ dig -t ns <domain name>
11
задан Mel 19 December 2018 в 09:21
поделиться

4 ответа

Не знаю, почему все так усложняют ситуацию. Как показано в документации , все эти атрибуты уже доступны.

Объекты Paginator имеют атрибут count , который показывает общее количество объектов на всех страницах, и Page объекты имеют свойства start_index и end_index .

Итак, предполагая, что вы передаете страницу в контекст шаблона:

{{ page.start_index }} to {{ page.end_index }} of {{ page.paginator.count }}.
48
ответ дан 3 December 2019 в 00:54
поделиться
totalPages = math.ceil(float(totalRecords)/recordsPerPage)

или

paginatorInstance.num_pages # this is there by default

Разве это не сложно, правда?

-1
ответ дан 3 December 2019 в 00:54
поделиться

Вам нужно будет сделать что-то более сложное за кулисами. И обратите внимание, что хотя я разработчик python, я уже давно использую werkzeug и jinja2, поэтому мой синтаксис django немного ржавый. Кроме того, это было написано в сухом коде (я просто набрал его здесь в браузере), и его следует протестировать, чтобы убедиться, что он работает должным образом.

Обычно я создаю объект разбивки на страницы и передаю его в объект запроса который не фильтруется по страницам, вы также можете указать его количество на каждой странице и на какой странице вы находитесь.

Итак, что-то отдаленно похожее на:

Paginator(query, objects_per_page, current_page_number)

А затем передайте полученный объект разбиения на страницы в шаблон.

] Внутри init пагинатора вам нужно сделать что-то похожее на:

def __init__(self, query, objects_per_page, current_page_number):
    self.total = query.count()

    self.per_page = objects_per_page
    self.current_page_number = current_page_number
    self.lower_limit = objects_per_page * current_page_number
    self.upper_limit = objects_per_page * (current_page_number + 1)

    if self.upper_limit > self.total:
        self.upper_limit = self.total

    self.objects = query[self.lower_limit - 1:self.upper_limit - 1]

Затем в шаблоне вы '

3
ответ дан 3 December 2019 в 00:54
поделиться

Объект django Paginator имеет свойство num_pages . На ваш взгляд, вы можете просто передать правильные данные в свой шаблон и показать их там.

Итак, в качестве (грубого) примера:

view

 current_page = ## input param 
 items_per_page = 10  
 paginator = Paginator(result, items_per_page)    

 ...
 return render_to_response('template.html', 
   {
     'num_pages': paginator.num_pages,
     'start_count': items_per_page * current_page + 1,
     'end_count': (items_per_page * current_page + 1) + len(paginator(current_page).object_list)
     'items_per_page':  items_per_page
   }

template

showing {{start_count} - {{end_count}} of {{num_pages}}

(я написал этот код без использования компилятор, так что протестируйте его)

2
ответ дан 3 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: