【问题标题】:Need to fetch one-to-many model within a Queryset such that the Queryset has same record repeated, one for each child/nested model需要在 Queryset 中获取一对多模型,以便 Queryset 重复相同的记录,每个子/嵌套模型一个
【发布时间】:2019-12-20 10:51:59
【问题描述】:

我正在使用 Django 1.6 并且有一个问题陈述如下:

  1. 假设有 2 个模型,作者和书籍,因此作者和书籍模型存在明显的一对多关系。
  2. 现在,我需要显示作者的数据,这样,他写的每一本书都有一行。
  3. 由于 UI 部分在主干 js 中,我很难通过修改 js 中的内容来迭代/显示。
  4. 因此,希望在后端本身完成此操作。 要显示的数据如下:

    Authors name|Authors Qualification|Authors age|Book|Price
    

所以,我有一个查询集,其中包含 ,如果我获取他出版的书籍,它会给我他出版的所有书籍。相反,我希望它们一个一个。

【问题讨论】:

  • 我不清楚你在问什么。你什么意思它给了我他出版的所有书。相反,我希望他们一个一个

标签: python django-queryset django-1.6


【解决方案1】:

只关注Books 并使用.select_related(..) 来获取Authors。例如,我们可以打印如下内容:

books = Book.objects.select_related('author').order_by('author__name')
for book in books:
    print(book.author.name, book.author.qualification, book.author.age, book.title, book.price)

我正在使用 Django 1.6。

2015 年 4 月 1 日 起不再受支持。请尝试尽快升级

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-11
    • 2010-11-21
    • 2018-06-13
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2015-10-26
    • 2016-06-05
    相关资源
    最近更新 更多