【问题标题】:Django | Annotate objects to query姜戈 |注释要查询的对象
【发布时间】:2021-09-27 22:55:47
【问题描述】:

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

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

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 Query 应该如何访问模板中的书籍? `

authors = authors.objects.all()

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

【问题讨论】:

    标签: python sql django django-queryset annotate


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 请同时添加解释和/或相关文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 2018-03-02
    • 2021-09-13
    • 2020-12-10
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    相关资源
    最近更新 更多