我试图弄清楚如何使用Django-reversion跟踪Django中外键关系的变化。
简而言之,我正在尝试为Codelist
建模,其中包含Code
个仅属于一个Codelist。这可以使用如下的外键建模:
class CodeList(models.Model):
name = models.CharField(max_length=100)
class Code(models.Model):
value = models.PositiveIntegerField(max_length=100)
meaning = models.CharField(max_length=100)
codelist = models.ForeignKey(CodeList,related_name="codes")
此外,编辑代码的唯一方法是使用通过其代码列表访问的管理站点中的内联表单。对于所有意图和目的,代码属于代码列表,因为它们应该......
除了回归之外。
我使用reversion.middleware.RevisionMiddleware
来跟踪所有编辑更改,因为有一些非管理员表单可用于编辑代码。
我喜欢的是当我看到代码列表的历史时,它也应该更改为代码,但我无法在Django-reversion API中找到它。问题在于,API包括跟踪代码,并查看代码列表的更改,而不是通过遵循相反的关系来反过来。
是否有人知道如何做到这一点?
答案 0 :(得分:2)
Its not well documented Its very well documented, I just couldn't find it,但您可以将反向关系添加为要遵循的字段,如下所示:
reversion.register(CodeList, follow=["codes"])