让我们考虑以下几点:
a = Model.objects.get(pk=1)
a.name # foo
a.name = "bar"
a.name # bar
我现在如何获得之前的值“foo”? 我不想再次选择或复制先前的更改。还有其他想法吗?也许有一个地方可以进行这些改变。
答案 0 :(得分:1)
您可以再次查询数据库(Model.objects.get(pk=1).name
)
或者您将模型的状态存储在某个属性中..这通常用于检测更改。
class MyModel(models.Model):
def __init__(self, *args, **kwargs):
super(MyModel, self).__init__(*args, **kwargs)
self._initial = self.__dict__
a = MyModel.objects.get(pk=1)
a.name = "bar"
a._initial['name'] == "foo"