Вы здесь возвращаете QuizFilter
, а не его отфильтрованный набор запросов. Вам необходимо вернуть атрибут .qs
QuizFilter
:
class QuizList(ListView):
"""List of quizzes + pagination"""
model = Quiz
template_name = 'quizapp/home.html'
context_object_name = 'quizzes'
paginate_by = 15
def get_queryset(self):
qs = self.model.objects.all()
filtered_quizzes = QuizFilter(self.request.GET, queryset=qs)
return filtered_quizzes<b>.qs</b>
Если вам также необходим доступ к фильтру, может быть лучше использовать FilterView
:
class QuizList(ListView):
"""List of quizzes + pagination"""
model = Quiz
template_name = 'quizapp/home.html'
context_object_name = 'quizzes'
paginate_by = 15
def get_queryset(self):
qs = self.model.objects.all()
filtered_quizzes = QuizFilter(self.request.GET, queryset=qs)
return filtered_quizzes.qs
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update(
<b>filter=QuizFilter(self.request.GET, queryset=self.model.objects.all())</b>
)
return context
Итак, вы можете отрендерить фильтр с помощью {{ filter.form.as_p }}
.