Этот фрагмент кода взят из исходного кода django views/generic/list.py
:
def get_context_data(self, *, object_list=None, **kwargs):
"""Get the context for this view."""
queryset = object_list if object_list is not None else self.object_list
page_size = self.get_paginate_by(queryset)
context_object_name = self.get_context_object_name(queryset)
if page_size:
paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)
context = {
'paginator': paginator, #<--- (1)
'page_obj': page, #<--- (2)
'is_paginated': is_paginated,
'object_list': queryset
}
else:
context = {
....
}
if context_object_name is not None:
context[context_object_name] = queryset
context.update(kwargs)
return super().get_context_data(**context)
Это означает, что в вашем context
page_obj и paginator естьДоступные.Вы можете написать выражение как:
{{ page_obj.previous_page_number }} (2)
или
{{ paginator.num_pages }} (1)
Также вы можете написать:
def get_context_date(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
my_function( )
context['page-list'] = pageList(context['page_obj'].number,
context['paginator'].num_pages)
return context