Поскольку я никогда не хочу на самом деле удалять свои USER (BASE)
объекты, я ввел delete_date
для моей BASE
модели:
class BASE (models.Model):
class Meta:
abstract = True
app_label = 'base'
verbose_name_plural = 'bases'
objects = BASE_MANAGER ()
insert_date = models.DateTimeField (default = datetime.now (), auto_now_add = True)
update_date = models.DateTimeField (default = datetime.now (), auto_now = True)
delete_date = models.DateTimeField (null = True, blank = True)
def save (self):
super (BASE, self).save ()
def delete (self):
if not self.delete_date:
self.update_date = datetime.now ()
self.delete_date = datetime.now ()
self.save ()
else:
pass ## no delete!
Теперь, поскольку я не включил super (BASE, self).delete ()
в BASE.delete
фактический SQL не выполняется, что нормально;к сожалению, это также останавливает каскадирование внешних ключей.Есть ли элегантный способ добиться этого в Django?