Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django简单历史删除模型删除时的所有历史_Python_Django_Django Simple History - Fatal编程技术网

Python Django简单历史删除模型删除时的所有历史

Python Django简单历史删除模型删除时的所有历史,python,django,django-simple-history,Python,Django,Django Simple History,使用django simple history,如果对象本身被删除,是否有方法删除与该对象关联的所有历史?例如,如果我有一个用户模型: User.objects.filter(id=to_delete_id).delete() 该查询将删除该用户,但不会删除所有历史记录,我希望节省数据成本。是否有办法在删除时自动删除该特定用户的所有历史记录,或者我必须这样做: User.objects.filter(id=to_delete_id).delete() User.history.filter(i

使用django simple history,如果对象本身被删除,是否有方法删除与该对象关联的所有历史?例如,如果我有一个用户模型:

User.objects.filter(id=to_delete_id).delete()
该查询将删除该用户,但不会删除所有历史记录,我希望节省数据成本。是否有办法在删除时自动删除该特定用户的所有历史记录,或者我必须这样做:

User.objects.filter(id=to_delete_id).delete()
User.history.filter(id=to_delete_id).delete()

谢谢。

我想我找到了一个解决方案,如果出于某些性能原因这不好,请告诉我:

覆盖用户上的delete()方法:

class User(...):
    ...
    def delete(self):
        self.history.filter().delete()
        super(User, self).delete()
从文档中:

在某些情况下,您可能需要删除所有历史记录 删除主记录时的记录。这可以通过以下方式实现: 设置
cascade\u delete\u history=True

class Poll(models.Model):
    question = models.CharField(max_length=200)
    history = HistoricalRecords(cascade_delete_history=True)