Пагинация не работает с дополнительным контекстом в Django ListView
Я пытаюсь создать простую пагинацию через запрос отфильтрованных экземпляров модели Need. Проблема в том, что пагинация не работает вообще, и я предполагаю, что это происходит из-за лишнего контента. Вот мой текущий вид, который показывает пагинацию на фронтенде как пустой div:
class CategoryNeeds(ListView):
model = Need
template_name = "volunteering/category_needs.html"
paginate_by = 1
context_object_name = "needs"
def get_queryset(self):
return Need.objects.filter(category__name=self.kwargs["name"].capitalize())
def get(self, request, *args, **kwargs):
self.object_list = self.get_queryset()
category = Category.objects.get(name=kwargs["name"].capitalize())
self.extra_context = {
"category": category,
"needs": self.object_list
}
return self.render_to_response(self.extra_context)
А вот шаблон:
Причина, по которой я думаю, что проблема заключается в дополнительном содержимом, заключается в том, что этот вид прекрасно работает с пагинацией:
class AllNeeds(ListView):
model = Need
context_object_name = "needs"
paginate_by = 3
Кто-нибудь может объяснить, почему моя пагинация не работает? Буду очень благодарен за любой ответ!
Да, похоже, что вы перекрываете нормальный поток django, который добавляет контекст, попробуйте это:
class CategoryNeeds(ListView):
model = Need
template_name = "volunteering/category_needs.html"
paginate_by = 1
def get_queryset(self):
return Need.objects.filter(category__name=self.kwargs["name"].capitalize())
def get(self, request, *args, **kwargs):
self.object_list = self.get_queryset()
category = Category.objects.get(name=kwargs["name"].capitalize())
context = self.get_context_data()
context['category'] = category
return self.render_to_response(context)