Объект не является итерируемым в Django при возврате объектов в API

Я использую Django rest framework и Django для создания сайта, показывающего события.
Я фильтрую существующие модели в базе данных и вывожу новые объекты в новом API. Пока что я возвращаю все объекты в базе данных, а при возврате отфильтрованных объектов возникает такая ошибка: TypeError: 'type' object is not iterable.

В models.pyЗдесь вы видите, что на самом деле я не фильтрую по дате. Вместо этого я тестирую код, фильтруя по статусу.

from django.db import models

class EventQuerySet(models.QuerySet):
    def today(self):
        return self.filter(status="Publish")


class EventManager(models.Manager):
    def get_queryset(self):
        return EventQuerySet(self.model, using=self._db)

    def today(self):
        return self.get_queryset().today()

class Event(models.Model):
    CATEGORY = (
        ('Smiles', 'Smiles'),
        ('Laughter', 'Laughter'),
        ('Crazy', 'Crazy'),
        ('Food', 'Food'),
        ('Outside', 'Outside'),
    )
    STATUS = (
        ('Publish', 'Publish'),
        ('Draft', 'Draft'),
    )
    title = models.CharField(max_length=200, blank=False)
    status = models.CharField(max_length=200, null=True, choices=STATUS)
    startDate = models.DateField(blank=True)
    endDate = models.DateField(blank=True)
    link = models.CharField(max_length=200, blank=False)
    category = models.CharField(max_length=200, null=True, blank=True, choices=CATEGORY)

    objects = models.Manager()
    date = EventManager()

    class Meta:
        unique_together = ('title', 'link')

    def __str__(self):
        return self.title

Используя оболочку python manage.py для проверки, запрос работает и выводит правильные объекты. Вот пример некоторых данных, которые я получаю:

<EventQuerySet [<Event: Positivus Festival 2022>, Central European zone stage in equestrian show jumping "Rīga 2022" >, <Event: Exhibition Dramaturgy of the Landscape>, <Event: Writing Implements of Medieval Riga>, '...(remaining elements truncated)...']> 

Вот мой файл views.py Я следовал этой официальной документации.

from events.models import Event
from rest_framework import generics
from rest_framework.generics import ListAPIView 
from events.serializers import EventSerializer
from django_filters import rest_framework as filters

class EventTodayView(ListAPIView):
    """
    API endpoint that allows events to be viewed or edited.
    """
    queryset = Event.date.today()

class EventFilter(filters.FilterSet):
    title = filters.CharFilter(field_name="title", lookup_expr='contains')
    startDate = filters.DateFilter(field_name="startDate", lookup_expr='gte')
    endDate = filters.DateFilter(field_name="endDate", lookup_expr='lte')

    class Meta:
        model = Event
        fields = ['title', 'status', 'startDate', 'endDate']


class EventAPIView(generics.ListAPIView):
    """
    API endpoint that allows events to be viewed or edited.
    """
    queryset = Event.objects.all().order_by('startDate')
    serializer_class = EventSerializer
    filter_backends = (filters.DjangoFilterBackend,)
    filterset_class = EventFilter

А это мой файл urls.py

from django.contrib import admin
from django.urls import path

from events import views

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', views.EventAPIView.as_view(), name='api'),
    path('api/today', views.EventTodayView.as_view(), name='api-today')
]

Полное сообщение об ошибке здесь:

Internal Server Error: /api/today
Traceback (most recent call last):
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\django\views\generic\base.py", line 84, in view
    return self.dispatch(request, *args, **kwargs)
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\rest_framework\views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
    raise exc
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\rest_framework\views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\rest_framework\generics.py", line 199, in get
    return self.list(request, *args, **kwargs)
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\rest_framework\mixins.py", line 38, in list
    queryset = self.filter_queryset(self.get_queryset())
  File "D:\Prosjekter\Koding\What's happening\env\lib\site-packages\rest_framework\generics.py", line 149, in filter_queryset
    for backend in list(self.filter_backends):
TypeError: 'type' object is not iterable

Любая помощь будет высоко оценена. Спасибо :)

Вернуться на верх