Python Django ORM-获取相关项的查询集

Python Django ORM-获取相关项的查询集,python,django,orm,Python,Django,Orm,考虑以下模型: class Car(Model): owner = ForeignKey(User) ... some irrelevant attributes ... class User(Model): # Django user model 给定一个用户查询集,有没有一种简单的方法(例如,一个方法调用)如何从第一个查询集中获取用户拥有的汽车查询集?类似于User.objects.all() Car.objects.filter(owner__in=my_car

考虑以下模型:

class Car(Model):
    owner = ForeignKey(User)
    ... some irrelevant attributes ...

class User(Model):
    # Django user model

给定一个用户查询集,有没有一种简单的方法(例如,一个方法调用)如何从第一个查询集中获取用户拥有的汽车查询集?类似于
User.objects.all()

Car.objects.filter(owner__in=my_carz)

您可以在
查找中使用
\u:

Car.objects.filter(owner__in=my_carz)

下面是一个相关的答案,希望能有所帮助:

一个简单的实现是:

users = Users.objects.all()
for user in users:
    cars = user.car_set.all()
        ... do something with the cars queryset ...

下面是一个相关的答案,希望能有所帮助:

一个简单的实现是:

users = Users.objects.all()
for user in users:
    cars = user.car_set.all()
        ... do something with the cars queryset ...

这会影响数据库多少次?我担心两次,一次用于
my_carz
queryset,一次用于实际查询……这取决于具体情况。如果用户查询集尚未计算,那么它将被转换为一个子查询,因此只有一个db命中。但请注意,要小心过度优化;不管是一个还是两个查询都不会有太大区别。好吧,这是有意义的,我们将坚持这种方法。你知道为什么像my
related
这样的方法不存在吗?这是故意的,还是仅仅是一次事故?这会影响数据库多少次?我担心两次,一次用于
my_carz
queryset,一次用于实际查询……这取决于具体情况。如果用户查询集尚未计算,那么它将被转换为一个子查询,因此只有一个db命中。但请注意,要小心过度优化;不管是一个还是两个查询都不会有太大区别。好吧,这是有意义的,我们将坚持这种方法。你知道为什么像my
related
这样的方法不存在吗?这是故意的,还是仅仅是一次事故?这将是痛苦的缓慢这将是痛苦的缓慢