【发布时间】:2022-11-13 18:36:49
【问题描述】:
我有 2 个模型,House 和 Room,其中 Room 有 House 的外键:
class House(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=50)
class Room(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=50)
color = models.CharField(max_length=50)
house = models.ForeignKey(House, on_delete=models.CASCADE, related_name='rooms')
当我运行以下测试时,由于某种原因颜色不匹配,即使 id 匹配。有人可以帮忙找出原因吗?
def test_color_change(self):
h = House(name='new house')
h.save()
r = h.rooms.create(
name='living room',
color='blue'
)
r2 = h.rooms.get(name='living room')
r2.color = 'green'
r2.save()
self.assertEqual(r.id, r2.id)
self.assertEqual(r2.color, r.color)
我一直在查看 RelatedManager 的 django 文档,但一直无法弄清楚。我本来希望 r 和 r2 指向同一个对象,但显然它们不是。
【问题讨论】:
标签: django django-models