编辑模型属性时出现奇怪的情况

时间:2012-09-29 18:59:59

标签: django model attributes

我的模特看起来像这样:

class Model1(models.Model):
  ...

class Model2(models.Model):
    model1 = models.ForeignKey(Model1)
    attr = models.IntegerField(default=1)

从shell中,我看到以下行为:

>>> m1.model2_set.all()[0].attr += 1
>>> m1.model2_set.all()[0].attr
1
>>> m2 = m1.model2_set.all()[0]
>>> m2.attr += 1
2

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

看起来您正在从数据库中检索相同的Model2实例。 m1和m2似乎具有相同的Model2,您可以通过model2_set.all()[0]检索它。你可以这样验证:

>>> m2.model2_set.all()[0] == m1.model2_set.all()[0] # should be true