我的模特看起来像这样:
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
知道为什么会这样吗?
答案 0 :(得分:0)
看起来您正在从数据库中检索相同的Model2实例。 m1和m2似乎具有相同的Model2,您可以通过model2_set.all()[0]
检索它。你可以这样验证:
>>> m2.model2_set.all()[0] == m1.model2_set.all()[0] # should be true