首页 > 解决方案 > 姜戈 | 注释要查询的对象

问题描述

我目前正在努力弄清楚如何处理以下问题:

想象一下我有这两个模型:

class author(models.Model):
     name = models.CharField(mac_length=50)
     ...

class book(models.Model):
     author = models.ForeignKey('author', on_delete=models.CASCADE)
     ...

现在我想创建一个视图,列出所有作者及其所有书籍。这可能看起来像这样:

乔安妮·K·罗琳

JRR托尔金

问题:
Django Query 应该如何访问模板中的书籍?`

authors = authors.objects.all()

这给了我作者的集合,但不是他们所属的书。有没有办法将字典注释或聚合到查询集?我觉得这很像新秀的东西,但如果你能帮助我,那还是很好的。

标签: pythonsqldjangodjango-querysetannotate

解决方案


我认为您正在寻找类似的东西:

authors = authors.objects.all().prefetch_related('book_set')

然后以这种方式访问​​它们:

for author in authors:
    books = author.book_set.all()

推荐阅读