我有一个Django视图,我正在尝试优化.它显示页面上的父对象列表及其子对象.子模型将外键返回到父项,因此select_related似乎不适用.
class Parent(models.Model):
name = models.CharField(max_length=31)
class Child(models.Model):
name = models.CharField(max_length=31)
parent = models.ForeignKey(Parent)
Run Code Online (Sandbox Code Playgroud)
一个简单的实现使用n + 1个查询,其中n是父对象的数量,即.一个查询用于获取父列表,然后一个查询用于获取每个父项的子项.
我写了一个视图,在两个查询中完成工作 - 一个用于获取父对象,另一个用于获取相关的子对象,然后是一些Python(我太尴尬了,无法在此处发布)将它们全部重新组合在一起.
一旦我发现自己导入标准库的collections模块,我意识到我可能做错了.可能有一个更简单的方法,但我缺乏Django经验来找到它.任何指针将非常感谢!