使用django简单历史记录,如果删除了对象本身,有没有办法删除与对象关联的所有历史记录?例如,如果我有用户模型:
User.objects.filter(id=to_delete_id).delete()
该查询将删除该用户,但它不会删除所有历史记录,我希望节省数据费用。有没有办法在删除时自动删除所有特定用户的历史记录,或者我是否必须这样做:
User.objects.filter(id=to_delete_id).delete()
User.history.filter(id=to_delete_id).delete()
感谢。
答案 0 :(得分:1)
在某些情况下,您可能希望删除所有历史记录 删除主记录时的记录。这可以通过 设置
cascade_delete_history=True
class Poll(models.Model):
question = models.CharField(max_length=200)
history = HistoricalRecords(cascade_delete_history=True)
答案 1 :(得分:0)
我想我找到了一个解决方案,请告诉我这是否有一些性能原因:
覆盖User上的delete()方法:
class User(...):
...
def delete(self):
self.history.filter().delete()
super(User, self).delete()