假设我们有一个对象myobj
,其中包含字段f1
,f2
。
最初,这些字段设置为1
和2
并保存为pk=1
现在,我再次称它为:
myobj.f1 = 11
myobj.f2 = 22
myobj.save()
虽然模型方法是save(self, *args, **kwargs)
我知道,我们可以将自己的变量传递给它,覆盖方法,做我们想做的事情。
无论如何,我们可以知道对象的先前数据吗?使用一些内置参数?
答案 0 :(得分:3)
在save()
方法中没有任何内置方法可以获取旧数据。您将不得不查询数据库。
像这样:
class MyModel(Model):
...
def save(self, *args, **kwargs):
if self.pk:
old_obj = MyModel.objects.get(pk=self.pk)
#use old_obj for something
...