1

私のモデルは次のようになります。

class Model1(models.Model):
  ...

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

シェルから、次の動作が見られます。

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

なぜこれが起こるのでしょうか?

4

1 に答える 1

0

データベースから同じ Model2 インスタンスを取得しているようです。m1 と m2 には同じ Model2 が接続されているように見えますが、これは で取得しmodel2_set.all()[0]ます。これは次のように確認できます。

>>> m2.model2_set.all()[0] == m1.model2_set.all()[0] # should be true 
于 2012-09-29T23:18:14.163 に答える