在 django-reversion 中跟踪外键的反向关系

Tracking a reverse relationship for a foreignkey in django-reversion

我正在尝试弄清楚如何使用 Django-reversion 跟踪 Django 中外键关系的更改。

简而言之,我正在尝试对 Codelist 建模,其中包含 Code,其中 属于一个编码表。这可以像这样使用外键建模:

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 涵盖了跟踪代码和查看代码列表的更改,而不是遵循相反的关系。

有人知道如何做到这一点吗?

Its not well documented Its very well documented, I just couldn't find it,但您可以像这样将反向关系添加为要遵循的字段:

reversion.register(CodeList, follow=["codes"])