У меня есть простая модель с настраиваемым менеджером для фильтрации
MyCustomManager(models.Manager):
def all(self):
return super().get_queryset().filter(flag=True)
SimpleModel(models.Model):
objects = MyCustomManager()
flag = models.BooleanField(default=True)
SimpleModelWithFK(models.Model):
simple_model = models.ForeignKey(SimpleModel)
Возможно ли глобально предотвратить получение SimpleModel
экземпляров, для которых flag
установлено на False
?
Конечно, сейчас вызовы all()
на SimpleModel
будут вести себя как таковые, но, например, вызов SimpleModelWithFK().objects.all()
вернет все связанные SimpleModel
с, включая те, с flag=False
.Я знаю, что мог бы также переопределить Manager для SimpleModelWithFK
, но это, кажется, не так оптимально, и для более крупных приложений было бы труднее гарантировать отсутствие утечек.