我有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()
关于python - Django,ManyToMany字段,带有额外字段的正确对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25125304/