我正在使用Django 1.11。我有三张桌子。
A(models.Model):
name = models.CharField(max_length=128)
B(models.Model):
name = models.CharField(max_length=128)
a = models.ForeignKey(A, related_name='b')
D(models.Model):
name = models.CharField(max_length=128)
a = models.ForeignKey(A)
是否可以使用预取相关的方法从B获取所有D的相应行?我想在D模型中引用字段,并在进行预取查询时与B模型进行比较。可能是这样的:
D.objects.all().select_related(
'a'
).prefetch_related(Prefetch(
'a__b',
queryset=B.objects.filter(name=F('d__name'))
))