我正在使用 django-simple-history 来跟踪模型上某些字段的更改。
我的简化模型设置:
class Collection(models.Model):
description = models.TextField()
# ...
history = simple_history.HistoricalRecords()
class Item(models.Model):
content = models.TextField()
collection = models.ForeignKey(Collection, related_name="items", on_delete=models.CASCADE)
# ...
history = simple_history.HistoricalRecords()
现在理想情况下,我希望看到Item
变化反映在Collection.history
.
例如,如果Item
将一个新条目添加到集合中,我希望在Collection.history
.
这有可能吗?
编辑:关于我想做的更多细节:基本上每当内部发生Collection
变化时,我都希望有一个快照能够进行差异。
例如,description
更改了,然后我可以简单地在两个快照之间进行比较,看看发生了什么变化。这适用于简单历史。
现在不起作用的是,每当Item
更改/添加/删除 an 时,新状态都不会反映在 my 的历史记录中Collection
。考虑:
c = Collection.objects.get(id=123)
item = Item.objects.get(id=456)
c.items.add(item)
如果我检查c.history
,据我所知,没有办法知道它item
已添加到集合中。