我有 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]), etc... 但是这很不方便。
那么是否有一个查询会给我“CarList”对象?
请您参考如下方法:
如果我对你的理解是正确的,你有一个用户,你想得到 CarList。由于您有一个从 CarList 到 User 的 ForeignKey,这是一个简单的向后关系:
carlists = user.carlist_set.all()
