Менеджер по умолчанию моделей Django ведет себя не так, как ожидалось

Я использую Django 3.2

У меня есть модель, определенная следующим образом:

CHOICE_TYPES = (
    (0, 'pending'),
    (1, 'approved'),
    (2, 'rejected')
)


class ApprovedFooManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(status=1)



class PendingFooManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(status=0)
        


class RejectedContentManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(status=2)
        



class Foo(models.Model):
    status = models.PostiveSmallInteger(choices=CHOICE_TYPES, default=0)

    #objects = models.Manager()
    objects = ApprovedFooManager()
    objects_pending = PendingFooManager()
    objects_rejected = RejectedFooManager()

    class Meta:
        abstract = True


class FooBar(Foo):
    name = models.CharField(max_length=100)
    # pass

В своей оболочке я набираю:

from myapp.models import FooBar    
FooBar.objects.create(name='Fred') # Should be created with status of pending    
FooBar.objects.all() # Expect empty QuerySet, but I get QuerySet with 1 item (the object created in line above

Почему атрибут objects на FooBar не возвращает 'записи', отфильтрованные со статусом=1?

Как это исправить?

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