Я хочу реализовать механизм мягкого удаления на peewee.
Я попытался переопределить метод выбора в BaseModel, как метод сохранения.
class BaseModel(Model):
id = BigAutoField()
created = DateTimeField(default=datetime.datetime.now)
modified = DateTimeField()
deleted = BooleanField(default=False)
def select(self, *args, **kwargs):
super(BaseModel, self).select(*args, **kwargs).where(BaseModel.deleted!=True)
def save(self, *args, **kwargs):
self.modified = datetime.datetime.now()
super(BaseModel, self).save(*args, **kwargs)
class Meta:
database = db
Когда я пытаюсь переопределить метод выбора в моей базовой модели, он выдает следующую ошибку.
TypeError: select() missing 1 required positional argument: 'self'
Есть ли другой способ реализовать механизм мягкого удаления? Что мне здесь не хватает?