我有一个我正在尝试优化的 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)
一个简单的实现使用n+1 个查询,其中n是父对象的数量,即。一个查询来获取父列表,然后一个查询来获取每个父级的子级。
我编写了一个视图,它在两个查询中完成这项工作 - 一个用于获取父对象,另一个用于获取相关的子对象,然后是一些 Python(我很尴尬无法在此处发布)将它们重新组合在一起.
一旦我发现自己导入了标准库的collections
模块,我意识到我可能做错了。可能有一个更简单的方法,但我缺乏 Django 经验来找到它。任何指针将不胜感激!