我有 2 个模型:用户和汽车,我想为用户创建一个字段,其中保存用户汽车的列表。我创建了 3 个类:
class Car():
type = ...
class User():
name = ...
cars = models.ManyToManyField(Car, through='CarList')
class CarList():
owner = models.ForeignKey(User)
car_type = models.ForeignKey(Car)
extra_field = ...
extra_field2 = ...
现在,当我想要获取用户的汽车时,我可以使用 User.cars.all() “函数”,它返回他所有汽车的列表。这是公平和好的,除了它返回 Car 对象的外键列表而不是 CarList 对象(它有额外的字段!!)
我知道我可以使用不同的查询,例如:CarList.objects.get(owner=user, car_type=user.cars.all()[0])等...
但是这只是不方便。
那么是否有一个查询可以给我“CarList”对象?
最佳答案
如果我理解正确的话,您有一个用户,并且您想要获取 CarList。由于您有一个从 CarList 到 User 的外键,因此这是一个简单的向后关系:
carlists = user.carlist_set.all()
关于python - Django,ManyToMany 字段,使用额外字段获取正确的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25125304/