如何在进行一些更改后还原Django模型实例?

时间:2011-05-01 02:47:49

标签: django

假设我有一个Django模型如下:

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)

某处我有一个实例p,我对它做了一些修改。

p.first_name = 'new first name'

由于某种原因,我希望恢复我对此实例所做的所有更改。我能想到恢复的一种方法如下:

p = Person.objects.get(pk=p.pk)

上面的代码取决于Model类名。有没有更简单的模型独立方式来做到这一点?

1 个答案:

答案 0 :(得分:3)

给定一个实例p,

p = p.__class__._default_manager.get(pk=p.pk)