Django-reversion手动创建版本

von4xj4u  于 2022-12-20  发布在  Go
关注(0)|答案(1)|浏览(111)

假设我只想在某些情况下创建一个对象的版本,例如当类'mymodel'的对象的'status'字段被更改为'submitted'时,我该怎么做呢?

class MyModel(AbstractModel):
    number = models.CharField(max_length=255)
    status = models.CharField(max_length=32)

    def save(self, *args, **kwargs) -> bool:
        if self.status == 'submitted':
            #TODO: create version. HOW??????
        return super().save(*args, **kwargs)

另外,如何在每次保存时禁止自动创建版本?

fkaflof6

fkaflof61#

找到了办法:

with reversion.create_revision(manage_manually=True, atomic=False):
    reversion.add_to_revision(self)
    self.save()

相关问题