让我们说我有以下模型:
class Foo(models.Model):
...
class Bar(models.Model):
name = models.CharField(max_length=255)
foo = models.ForeignKey(Foo)
现在,我正在执行以下查询:
foo_pks = set([])
for bar in Bar.objects.filter(name='some_name'):
foo_pks.add(bar.foo.pk)
for foo in Foo.objects.filter(pk__in=foo_pks):
# Do something
因此,基本上,我将主键添加到集合中,然后使用该集合进行另一个查询。我要打几次数据库?而且,这种效率极低吗?如果是这样,还有更好的方法吗?