假设我有以下型号
class Author(models.Model):
name = models.CharField(max_length=25)
...
class Publisher(models.Model):
name = models.CharField(max_length=25)
...
class Book(models.Model):
author = models.ForeignKey(Author)
publisher = models.ForeignKey(Publisher)
...
由于某种原因,我想按作者和出版者查询书籍和分组结果,所以:
books = Book.objects.values('author', 'publisher').annotate('sth'=Avg('sth_else'))
结果如下:
<BookQuerySet [{'author': 2, 'publisher': 1, 'sth': 1.0}]>
是否可以加载整个Author和Publisher对象,而不仅仅是它们的相关ID?
答案 0 :(得分:0)
恐怕不是。为了获得各自的作者和发布者对象。您可能只需要使用从查询中获得的ID并进行另一个查询。
authors = Author.objects.filter(id__in = authors)
publishers = Publisher.objects.filter(id__in = publishers)
作者,发布者是您上面获得的ID的列表