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