我有一个模型,每当字段已更新/编辑时,我都希望跟踪更改。因此,每次保存新更新之前,我都会获取旧值和新值并创建一个新的Audit对象以跟踪这些更改。
尝试了下面的方法,该方法适用于m2m关系字段(例如User)以外的大多数字段,在该字段中,新旧值均保持不变。无论如何,我是否可以获得旧的和新的m2m字段值,以便每次保存/更新Model对象时都可以创建审计记录?
def __init__(self, *args, **kwargs):
super(Model, self).__init__(*args, **kwargs)
self.old_name= self.name
self.assigned_users = self.assigned_users.all()
def save(self, *args, **kwargs):
audit = audit.objects.create(
old_name=self.old_name,
new_name=self.name.
old_assigned_users=self.old_assigned_users,
new_assigned_users=self.assigned_users.all())
super(Model, self).save(*args, **kwargs)