MalikDeveloper2077
@MalikDeveloper2077

Django_filters ошибка “QuizFilter has no len()”?

У меня есть фильтр

import django_filters

from .models import Quiz


class QuizFilter(django_filters.FilterSet):
    class Meta:
        model = Quiz
        fields = ['title', 'level']

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


Когда открываю страницу получаю такую ошибку
5e69194bce2d7207864952.png

В шаблонах я просто пишу {% for quiz in quizzes.qs %}, а для фильтрации я использую {{ quizzes.form.as_p }}
Как я могу решить проблему?
  • Вопрос задан
  • 31 просмотр
Решения вопроса 1
ArsenyMatytsyn
@ArsenyMatytsyn
Руководитель frontend направления, предприниматель
QuizFilter это запрос, при выводе в шаблоны это игнорируется, в ЯП тебе необходимо преобразовать полученные данные в список. Вот тут есть разбор.

PS: это вопрос не столько Django, сколько обмена данными между ЯП и базами данных. В том же Flask с такой проблемой можно при отсутствии знаний столкнуться на раз. Да и продолбившись в глаза и со знанием дела тоже можно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы