我有两个模型通过一个多到多的领域相关。
class Tires(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
brand = models.CharField(max_length=50)
class Car(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
brand = models.CharField(max_length=50)
tires = models.ManyToManyField('Tires', blank=True)当我通过管理页面将轮胎添加到汽车上时,它工作得很好,但在我的单元测试中不起作用,我也不知道问题出在哪里(可能是非常简单的事情)。
这是我最拿手的:
def test_many_to_many(self):
tires_1 = Tires(brand='bridgestone')
tires_1.save()
car_1 = Car(brand='BMW')
car_1.save()
car_1.tires.add(tires_1)
car_1.save()这不会引起任何异常,但是当我打印car_1.tires时,它说carthings.Tires.None我尝试过相反的方法,将car_1添加到tires_1.car_set中,但结果是相同的。我还尝试在多到多字段中添加一个不同类的对象,只是为了看看会发生什么,这确实会引发一个错误。所以它看起来像加法工作,但它只是没有保存或其他什么?
发布于 2016-04-29 08:13:12
你可能是这样做的:
>> print car_1.tires
carthings.tires.None它是“相关对象管理器”的表示形式。你可能想做这样的事情:
>> print car_1.tires.all()
[<Tire 1>]它返回一个查询集,它的表示更有意义,因为它实际上执行了一个查询,以显示关系中的第一个元素。
顺便说一句,您不需要在添加一些轮胎关系后save模型,因为您不需要更新Cars表。
https://stackoverflow.com/questions/36932864
复制相似问题