我们基于以下模型来分析select_related的作用。
两种查询方式: A. 不带select_related book = Book.objects.filter(pk=1) # 需要查询数据库 1 n = book.name # 需要查询数据库 2 a = book.age # 需要查询数据库 3 *总共向数据库发起三次查询。 B. 带select_related book = Book.objects.select_related().filter(pk=1) # 需要查询数据库 1 n = book.name # 直接从book对象中取 a = book.age # 直接从book对象中取 *总共向数据库发起一次查询。 也就是说使用select_related()方法一次性的把Book关联的对象都查询出来放入对象中,再次查询时就不需要再连接数据库,节省了后面查询数据库的次数和时间。