python - Django,ManyToMany 字段,使用额外字段获取正确的对象

标签 python django manytomanyfield

我有 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/

相关文章:

python - 如何在python中的多个字典列表中查找项目的累积总和

python - Django 向自己发送请求

python - 确定 M2M 字段是否具有自定义直通模型

django - “QuerySet”对象没有属性错误,尝试获取 ManyToMany 字段的相关数据

python - 可以在字段集中使用的有序 ManyToManyField

python - Keras Convolution2D 输入 : Error when checking model input: expected convolution2d_input_1 to have shape

python - 如何根据 ODR 结果计算标准误差?

Django - 向用户授予自定义权限

python - 比较元组列表中的相似值

python - 分别获取查询集中每个项目的计数 Django DRF