Django SoftDelete Наследование моделей и менеджеров моделей
у меня есть модель мягкого удаления BasicModel и модель пользователя Paddy. модель пользователя objects не наследует менеджер объектов BasicModel от модели пользователя
core приложения models.py
class BasicModelQuerySet(models.QuerySet):
def delete(self):
return self.update(is_deleted = True, deleted_at = timezone.now())
def erase(self):
return super().delete()
class BasicModelManager(models.Manager):
def get_queryset(self):
return BasicModelQuerySet(self.model, self._db).filter(is_deleted = False)
# Base Application Model
class BasicModel(models.Model):
"""
Base application model to add default fields to models
without having to write repeated code.
"""
deleted_at = models.DateTimeField(blank = True, null = True,)
is_deleted = models.BooleanField(default = False,)
objects = BasicModelManager()
class Meta:
abstract = True
# extras ...
accounts приложения models.py
class PaddyManager(BaseUserManager):
def create_user(self, first_name, last_name, email, password, **extra_fields):
# user creation ... skipping code
pass
def create_superuser(self, first_name, last_name, email, password, **extra_fields):
# super user creation ... skipping code
pass
# BasicModel from core.models.py
class Paddy(BasicModel, AbstractUser):
# model fields
objects = PaddyManger() <-- HOW TO MAKE THIS USE BasicModel's Model Managers AND STILL USE CREATE_USER / CREATE_SUPERUSER METHODS OF PaddyManager()
#extras
Моя проблема заключается в том, как мне заставить модель пользователя возвращать только не удаленные объекты, когда я вызываю User.objects.all() и при этом иметь возможность вызывать методы create_user или create_superuser из PaddyManager?