相关疑难解决方法(0)

多对多字段的所有值:Django

我有两个型号:

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)

我可能在作者模型中有更多字段,因此也希望获得这些字段.

我可以在一个查询中执行此操作吗?

我能做些什么来获得所需的结果?

django django-models django-queryset

12
推荐指数
1
解决办法
8554
查看次数

标签 统计

django ×1

django-models ×1

django-queryset ×1