【发布时间】:2018-10-02 22:11:43
【问题描述】:
假设我有一个这样的模型:
class Appointment(models.Model):
services = models.ManyToManyField(
'models.Service', through='common.AppointmentService')
我想要做的是覆盖该字段以返回特定的查询集(如下所示,它不起作用):
class Appointment(models.Model):
services = models.ManyToManyField(
'models.Service', through='common.AppointmentService')
@property
def services(self)
return super(Appointment, self).services.all_with_deleted()
场景详情:
我正在实施软删除。
我软删除服务模型,通过设置deleted_at 字段从应用程序中删除所有“已删除”的服务。但是关于该服务已经存在的约会,我需要尊重这些服务,而不是“删除”它们。所以,无论我在哪里使用appointment.services,我都需要致电appointment.services.all_with_deleted()。但我不希望在我的代码中乱扔垃圾。模型应通过自定义管理器或覆盖字段抽象出这些细节。
【问题讨论】:
标签: django django-models many-to-many django-orm