我有一个模型,我想当一个对象被删除,而不是被删除一个状态更新。这是通过以下代码实现的:
def delete(self, using=None, keep_parents=False):
self.status = Booking.DELETED
self.save()
class BookingManager(models.Manager):
def get_queryset(self):
return super().get_queryset().exclude(status=Booking.DELETED)
class BookingDeletedManager(models.Manager):
def get_queryset(self):
return super().get_queryset().filter(status=Booking.DELETED)
class Booking(models.Model):
PAYED = 0
PENDING = 1
OPEN = 2
CANCELLED = 3
DELETED = 4
objects = BookingManager()
deleted_objects = BookingDeletedManager()
...
在
documentation
它指出这些信号应该用来
允许分离的应用程序在框架的其他地方发生操作时得到通知
. 似乎这个信号是一个很好的解决方案,但文档中的细微差别让我觉得它可能不是我想要的,重写可能只是一种方式。
这不是真正的情况,因为我只是想在这里的功能所有的时间。
所以,我的问题是,有没有一个坚实的理由,为什么我不应该重写delete方法,使用pre-delete信号,反之亦然?