如何在 one-to-many 关系链中的 Django 中编写 select 查询?
How to write select query in django in chain of one-to-many relationship?
如何在 Django 中编写 select 查询?我有 2 one-to-may 关系
一开始,我的英语不是很好。我很抱歉 :)。我有 3 张桌子。 Driver,汽车和乘车。 Driver和Car的关系是(one-to-many:一个Driver可以有多个Car。Car和Ride的关系是(one-to-many:一个Car可以有多个Ride。我想要有 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>]>
这是 Drivers 大于或等于 x 游乐设施
您可以计算每个 Driver
的 Ride
的数量,然后过滤该数字,例如:
from django.db.models import <b>Count</b>
Driver.objects.annotate(
<b>nride=Count('car__ride')</b>
).filter(<b>nride__gte=x</b>)
因此,我们首先用 Count(..)
[Django-doc] of related Ride
s, next we filter that queryset by specifying that the nrides
field annotation should be greater than or equal to x
, by using the __gte
lookup [Django-doc] 注释每个 Driver
对象。这里x
当然是你需要填写的乘车次数(比如5
)。
如何在 Django 中编写 select 查询?我有 2 one-to-may 关系
一开始,我的英语不是很好。我很抱歉 :)。我有 3 张桌子。 Driver,汽车和乘车。 Driver和Car的关系是(one-to-many:一个Driver可以有多个Car。Car和Ride的关系是(one-to-many:一个Car可以有多个Ride。我想要有 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>]>
这是 Drivers 大于或等于 x 游乐设施
您可以计算每个 Driver
的 Ride
的数量,然后过滤该数字,例如:
from django.db.models import <b>Count</b>
Driver.objects.annotate(
<b>nride=Count('car__ride')</b>
).filter(<b>nride__gte=x</b>)
因此,我们首先用 Count(..)
[Django-doc] of related Ride
s, next we filter that queryset by specifying that the nrides
field annotation should be greater than or equal to x
, by using the __gte
lookup [Django-doc] 注释每个 Driver
对象。这里x
当然是你需要填写的乘车次数(比如5
)。