Django select_related - 我应该使用吗?

时间:2015-01-05 12:17:15

标签: django django-queryset

我有一个类似的模型:

class A(models.Model):
    number = models.SmallIntegerField()

class B(models.Model):
    a = models.OneToOneField(A)

我想做那样的事情:

b = B.objects.get(pk=1)
b.a.number = 5
b.a.save()

我的问题是:在这种情况下我应该使用.select_related('a')吗?

b = B.objects.select_related('a').get(pk=1)

1 个答案:

答案 0 :(得分:0)

总结一下:是的。如果没有select_related,您将需要执行两个单独的数据库查询(一个用于获取b,另一个用于获取关联的a)。使用select_related,您可以在一个查询中获取所有内容。