python - Django - 有什么方法可以立即获取外键对象?

标签 python database django foreign-keys

我有一个关于 Django 中外键行为的问题。

我在我的模型中定义了一个树层次结构,其中父子关系在子模型中表示为外键。现在,从叶级开始,我想检索父级、父级的父级等作为我定义的对象。

这可以通过简单地调用 Leaf.objects.all() 并正常地从 Python 代码访问对象来实现。

但是麻烦来了。对于每个这样的调用,Django 都会对适当的外部 ID 进行 SELECT 查询。这显然非常缓慢且效率低下。我想告诉 Django 类似“嘿,立即为我获取包括外键在内的所有数据,只需在数据库端进行连接和所有操作”。这在某种程度上是可能的吗?

最佳答案

只需使用 select_related() :

Leaf.objects.select_related().all()

关于python - Django - 有什么方法可以立即获取外键对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19163283/

相关文章:

python - 在文件中打印不匹配(唯一)的行

javascript - jQueryparents() 选择器失败

MySQL:如何防止删除?

python - 在 MacOS 上为 Python 3.6 初始化 virtualenvwrapper

python - 为多个请求重用数据库连接

android - 使用 proguard Android 后数据库崩溃

python - Django 模板将 HTML 参数渲染为文本

python - 如何保存pip包

Django 模型管理器相关过滤器

python - 从列表中删除重复的连续元组?