【问题标题】:Strange occurance when editing model attribute编辑模型属性时出现奇怪的情况
【发布时间】:2012-09-21 06:10:45
【问题描述】:

我的模型如下所示:

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

知道为什么会发生这种情况吗?

【问题讨论】:

    标签: django model attributes


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-30
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 2014-08-12
      • 1970-01-01
      相关资源
      最近更新 更多