我有两个型号:
class Author(models.Model);
name = models.CharField(max_length=255)
class Book(models.Model):
title = models.CharField(max_length=255)
authors = models.ManyToManyField(Author, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
现在,我想要所有书籍的信息.所以我做了:
book_info = Book.objects.all().values('title', 'authors__name')
Run Code Online (Sandbox Code Playgroud)
并且,它给出了一个输出(对于1本书有2位作者):
[{'title': u'book1', 'authors__name': u'author1'},{'title': u'book1', 'authors__name': u'author2'}]
Run Code Online (Sandbox Code Playgroud)
我想要的是:
[{'title': u'book1', 'authors': [{'name':u'author1'},{'name':u'author2'}]}]
Run Code Online (Sandbox Code Playgroud)
我可能在作者模型中有更多字段,因此也希望获得这些字段.
我可以在一个查询中执行此操作吗?
我能做些什么来获得所需的结果?