【发布时间】:2020-08-02 18:46:36
【问题描述】:
我有
class A(models.Model):
field_a = models.OneToOneField(B, on_delete=models.CASCADE)
class B(models.Model):
field_b = models.charField()
如何在这里使用 select_related 或其他东西编写最优化的查询?
在我的用例中,我需要在代码中的某处同时使用模型 A 的 field_a 和模型 B 的 field_b。那么我可以在一个 db hit 中同时获取两个对象吗?
queryset_b = B.objects.get(field_b="some name")
queryset_a = A.objects.get(b=queryset_b).field_a
field_a_of_model = queryset_a
field_b_of_model = queryset_b.field_b
# then some manipulation with both fields
它两次命中数据库。我可以使用 select_related 在一个 db hit 中执行此操作,以便同时获取两个对象吗?
【问题讨论】:
标签: django django-models django-queryset django-orm django-select-related