QuerySet API详解-all和select_related方法:
all
:获取这个ORM
模型的所有QuerySet
对象(没有对对象进行过滤、修改等)。
select_related
:在提取某个模型的数据的同时,也提前将相关联的数据提取出来。比如提取文章数据,可以使用select_related
将author
信息提取出来,以后再次使用article.author
的时候就不需要再次去访问数据库了。可以减少数据库查询的次数。
示例代码如下:
# books = Book.objects.all() # 获取所有书本情况 books = Book.objects.select_related("author", "publisher") # 获取book相关情况的时候,随便把书的出版社和作者一起去除(无需二次查询数据库——其实就是哥连接查询;如果不这样做:使用 item.author.name 时,又要查询数据库) print(books) for item in books: # print(item.name, item.price) print(item.name, item.author.name, item.publisher.name)
相关代码截图如下: