django如何使用外键?

时间:2014-07-29 18:10:40

标签: sql django

我在Django的开发系统,我真的很喜欢它。但是我想改进我的代码,但我怀疑Django如何使用外键

示例:

class A(model.Models):
   b = model.IntegerField()

class C(model.Models):
   d = models.ForeignKey(A)


#getting...
value = C.objects.get(id=1)

print value.d.b

当我从A类访问属性 b 时,django会在DB中实现咨询吗?或者实现咨询命令 C.objects.get(id = 1)

如果django在我尝试访问财产时咨询。他会一直在数据库中查询吗?

2 个答案:

答案 0 :(得分:1)

你可以这样做:

value = C.objects.select_related('d').get(pk=1)

这可以防止它再次访问数据库。

另见https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related

答案 1 :(得分:1)

您可以查看Caching and QuerySets以了解将检查db或cache

的人员