在玩ManyToManyField
时,我想知道有没有一种方法可以像使用ManyToManyField
进行ForeignKey
一样自动查询select_related()
?
表格:
class Author(models.Model):
fullname = models.CharField(max_length=100)
class Foo(models.Model):
bar = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
foo = models.ForeignKey(Foo)
author = models.ManyToManyField(Author)
通常我会从Book
获取我需要的数据
book = Book.objects.select_related('foo').get(pk=1)
authors = book.author.all()
进行2次旅行。有没有办法像select_related()
那样组合它们?
答案 0 :(得分:0)
您可以在M2M字段中使用prefetch_related
Book.objects.select_related('foo').prefetch_related('author').values('author', 'title').get(pk=1)