【发布时间】:2019-07-05 22:15:46
【问题描述】:
我想在peewee上实现软删除机制。
我尝试在我的 BaseModel 上覆盖 select 方法,例如 save 方法。
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
当我尝试在我的基本模型上覆盖 select 方法时,它会出现以下错误。
TypeError: select() missing 1 required positional argument: 'self'
还有没有其他方法可以实现软删除机制?我在这里错过了什么?
【问题讨论】: