Django聚合ForeignKey层次结构

问题描述

假设我有模型FooBarFooBarBar具有对Foo的ForeignKey引用。 FooBar具有对Bar的ForeignKey引用。给定一个Foo对象,我如何最有效地收集所有相关的FooBar对象?我不喜欢这样:

foobars = []
for bar in foo.bar_set.all():
    for foobar in bar.foobar_set.all():
        foobars.append(foobar)

解决方法

只需通过扩展关系即可

foobars = FooBar.object.filter(bar__foo=foo)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...