Python Django-有什么方法可以立即获取外键对象吗?
我有一个关于Django中外键行为的问题 我在模型中定义了一个树层次结构,其中父子关系在子模型中表示为外键。现在,从叶级开始,我想检索父级、父级的父级等,作为我定义的对象 这可以通过调用Leaf.objects.all()并通常从Python代码访问对象来实现 但麻烦来了。对于每个这样的调用,Django都会对相应的外部ID进行SELECT查询。这显然是非常缓慢和低效的。我想告诉Django一些类似于“嘿,一次给我所有的数据,包括外键,只需在数据库端进行连接和所有操作”。这有可能吗?只要使用:Python Django-有什么方法可以立即获取外键对象吗?,python,database,django,foreign-keys,Python,Database,Django,Foreign Keys,我有一个关于Django中外键行为的问题 我在模型中定义了一个树层次结构,其中父子关系在子模型中表示为外键。现在,从叶级开始,我想检索父级、父级的父级等,作为我定义的对象 这可以通过调用Leaf.objects.all()并通常从Python代码访问对象来实现 但麻烦来了。对于每个这样的调用,Django都会对相应的外部ID进行SELECT查询。这显然是非常缓慢和低效的。我想告诉Django一些类似于“嘿,一次给我所有的数据,包括外键,只需在数据库端进行连接和所有操作”。这有可能吗?只要使用:
@卡提克-没错。我想说明的是,它返回一个查询集,并且可以进一步链接。一个子项只有一个父项(如果不是在顶层的话),尽管一个父项最多可以有n个子项。我使用了与中相同的方法,其中描述了记者与文章的关系。@Danstahr-你完全正确。我在想一个完全不同的案子。我删除了“旁注”-这里没有任何意义。
Leaf.objects.select_related().all()