Менеджер по умолчанию моделей 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?
Как это исправить?