2
假设我有一个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类的名称。有没有更简单的模型独立的方式来做到这一点?
嗯,感谢名单,我仍然不知道是否有此明确定义的方法。在Django中不是一个普通用例吗? – 2011-05-01 17:45:14
@Shailesh:'p'只是一个普通的Python对象,就像任何其他的数据库一样。为了简单地“恢复”对对象所做的更改,旧值需要存储在该对象内(或让对象提供代码在后台为您提供的方法)。据我所知,我从来没有这样做过。你想要什么?也许有更好的方法? – 2011-05-01 20:56:30
@Deniz我基本上是在编写一些单元测试(使用py.test)。在测试中,我玩的是p的属性值,然后对p进行一些测试,然后将p恢复到原来的值。可能这不是一个常见的情况,需要Django的特别支持。 – 2011-05-02 01:52:26