0
让我们考虑以下几点:获取Django模型实例字段值
a = Model.objects.get(pk=1)
a.name # foo
a.name = "bar"
a.name # bar
如何我现在得到了以前的“foo”值? 我不想再次选择或复制之前的更改。任何其他想法?也许有一个地方,这些变化举行。
让我们考虑以下几点:获取Django模型实例字段值
a = Model.objects.get(pk=1)
a.name # foo
a.name = "bar"
a.name # bar
如何我现在得到了以前的“foo”值? 我不想再次选择或复制之前的更改。任何其他想法?也许有一个地方,这些变化举行。
您可以查询数据库再次(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"
正如@YujiTomita几乎完全忽略了你的两个规定:;)你*不想做的两种方式是完成你想做的事情的唯一两种方式。 – 2012-02-03 19:28:59
@ChrisPratt - 这是一个很好的观点......我没有注意到这两个规定!糟糕! – 2012-02-03 20:24:02