Ребята, вы знаете, как разбить на страницы общий ListView на основе классов, который использует django-фильтры в качестве панели поиска? Когда я прочитал некоторые статьи по этой проблеме (чего было не так много для представлений на основе классов), мне показалось, что фильтры django и разбиение на страницы не очень хорошо работают вместе. Вот мой взгляд:
class StudentListView(OrganisorAndLoginRequiredMixin, generic.ListView):
template_name = "leads/student_list.html"
context_object_name = "leads"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['filter'] = StudentFilter(self.request.GET, queryset=self.get_queryset())
return context
def get_queryset(self):
organisation = self.request.user.userprofile
return Lead.objects.filter(organisation=organisation).order_by('first_name')
Я был бы очень признателен, если бы вы, ребята, могли сказать мне, какой код мне нужно написать для моего представления, а также какой код мне нужно добавить в мой шаблон, чтобы разбивка на страницы работала. Я не думаю, что код для фактического фильтра и шаблона необходим, но если вам это нужно, я могу добавить его к этому вопросу. Спасибо.
Для получения дополнительной информации я собираюсь добавить в свой шаблон следующий код разбиения на страницы:
{% if is_paginated %}
<div class="pagination">
<span class="page-links">
{% if page_obj.has_previous %}
<a href="{{ request.path }}?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="page-current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
</span>
{% if page_obj.has_next %}
<a href="{{ request.path }}?page={{ page_obj.next_page_number }}">next</a>
{% endif %}
</span>
</div>
{% endif %}