假设我有一个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类名。有没有更简单的模型独立方式来做到这一点?
答案 0 :(得分:3)
给定一个实例p,
p = p.__class__._default_manager.get(pk=p.pk)