我在我的项目中使用 django-reversion。它工作得很好,除了一件事:我无法获得以前版本的 ManyToMany 字段。但是在 django admin 中它是有效的,而不是在我的代码中。要获得以前的版本,我使用以下代码:
vprod = Version.objects.get_for_date(product, ondate).get_object_version().object
它的工作原理是 m2m 字段,其中“产品”是 Product 类的对象,
class Product(models.Model):
name = models.CharField(max_length=255)
elements = models.ManyToManyField(Sku)
class Sku(models.Model):
name = models.CharField(max_length=255, verbose_name="SKU Name")
我可以得到vprod.name
它并返回我需要的东西,但是当我尝试时vprod.elements.all()
它只返回当前(最后)版本的列表,即使元素的数量发生了变化。