姜戈 |注释要查询的对象

问题描述

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

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

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

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

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

乔安妮·K·罗琳

  • 哈利波特与魔法石
  • ...

J. R.R.托尔金

  • 霍比特人
  • ...

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

authors = authors.objects.all()

这给了我作者的书集,而不是他们的书。 有没有办法将 Dict 注释或聚合到 Queryset? 我觉得这是新手的东西,但如果你能帮助我还是很好的。

解决方法

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

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

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

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