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