如何在一对多关系链中的 django 中编写选择查询



如何在 django 中编写选择查询?我有 2 个一对一关系

一开始,我的英语不是很好,我很抱歉:)。我有3张桌子。司机,汽车和乘车。驾驶员和汽车之间的关系是(一对多:驾驶员可以拥有多辆汽车。汽车和乘车之间的关系是(一对多:一辆汽车可以有多个乘车。我想要有x次乘车的司机名单。

我的模型:

class Driver(models.Model):
    account = GenericRelation(Account, related_query_name='drivers')
class Car(models.Model):
    owner = models.ForeignKey(Driver, on_delete=None)
class Ride(models.Model):
    car = models.ForeignKey(Car, on_delete=models.CASCADE)
    request = models.OneToOneField(RideRequest, on_delete=models.CASCADE, null=False)

我期待这样的东西:<QuerySet [<Driver: 1>, <Driver: 2>]>哪个是大于或等于 x 乘车的司机

您可以计算每DriverRide 秒数,然后过滤该数字,例如:

from django.db.models import Count
Driver.objects.annotate(
    nride=Count('car__ride')
).filter(nride__gte=x)

因此,我们首先使用相关RideCount(..) [Django-doc] 注释每个Driver对象,然后通过使用__gte查找 [Django-doc] 指定nrides字段注释应大于或等于 x 来过滤该查询集。这里x当然是您需要填写的所需游乐设施的数量(例如5(。

相关内容

  • 没有找到相关文章

最新更新