如何使用django-simple-history存储ManyToManyField的历史记录。

时间:2016-02-10 10:15:41

标签: python django history manytomanyfield django-simple-history

如何使用django-simple-history存储ManyToManyField的历史记录。我使用了带有属性m2m_filds的HistoricalRecords,但它抛出错误:意外的关键字参数'm2m_fields'

2 个答案:

答案 0 :(得分:1)

我是GitHub上的macro1,我认为事实上是django-simple-history的维护者。

从您的问题来看,您似乎只是询问与其他字段相比的一般ManyToManyField支持。简短的回答是我们目前不支持它。

ManyToManyField实际上创建了一个中间模型,表示您正在使用的两个模型之间的关系。

如果你想跟踪这段关系,我建议你创建一个代表关系的'through' model并将其传递给ManyToManyField构造函数。然后,您可以通过模型注册,以跟踪其历史记录。如果您在设置时遇到“意外关键字参数'm2m_fields'”等错误,请在我们的跟踪器中打开一个问题。

答案 1 :(得分:0)

作为 django-simple-history says的作者,这不可能只检测特定字段的变化,因为

  

正如您已经知道的那样,简单历史不会考虑价值观   完全保存。它会在每次保存时盲目保存新的历史版本   或删除信号。

他还说有可能Field Tracker做这项工作。