我有2个型号:
class Listing:
title = models.CharField()
class Location(models.Model):
listing = models.ForeignKey(Listing)
给定一组位置l = Location.objects.all()
我想找l.listing
(这不是正确的命令)
类似于listings = Listing.objects.filter(listing_set_in=l)
。
必须尽可能高效。
答案 0 :(得分:1)
如果我理解正确,您需要查找清单中的所有项目,这些项目存在于l
queryset中。为此,您可以按l
的值筛选列表查询集。
您可以使用Django子查询来减少查询量。
w / Subquery
Listing.objects.filter(pk__in=l.values('listing_id'))
与Subquery相同
from django.db.models import Subquery
Listing.objects.filter(pk__in=Subquery(l.values('listing_id')))