如何使用单个调用检索django模型中外键的数据?
我有两门课:如何使用单个调用检索django模型中外键的数据?,django,python-2.7,django-models,Django,Python 2.7,Django Models,我有两门课: class Author(models.Model): name = models.CharField(max_length=250, null=True) location = models.CharField(max_length=250, null=True) class Book(models.Model): author = models.ForeignKey(Author, null=True, related_name="book")
class Author(models.Model):
name = models.CharField(max_length=250, null=True)
location = models.CharField(max_length=250, null=True)
class Book(models.Model):
author = models.ForeignKey(Author, null=True, related_name="book")
no_of_pages = models.IntegerField(null=True)
genre = models.CharField(max_length=250, null=True)
我希望能够通过一次调用从书中访问作者的数据。
例如:
据我所知,这必须击中db几次。有没有一种方法可以通过一次调用获取作者的数据?您可以使用select\u related
books = Book.objects.filter(genre="fiction").select_related("author")
这将只获取一次db,并自动加载
书籍中的作者
模型,因为您处于for循环中,所以只会多次命中db。你筛选出了几本书,因此你有几位作者需要迭代。
books = Book.objects.filter(genre="fiction").select_related("author")