当我使用 django ORM 时是否可以防止多个查询?例子:
product = Product.objects.get(name="Banana")
for provider in product.providers.all():
print provider.name
此代码将进行 2 个 SQL 查询:
1 - 选择 ••• 从 stock_product WHERE stock_product.name = 'Banana'
2 - SELECT stock_provider.id, stock_provider.name FROM stock_provider INNER JOIN stock_product_reference ON (stock_provider.id = stock_product_reference.provider_id) where stock_product_reference.product_id = 1
我承认,我在一些项目中使用Doctrine (PHP)。使用学说可以在检索对象时指定连接(关系填充在对象中,因此无需再次查询数据库以获取属性关系值)。
是否可以对 Django 的 ORM 做同样的事情?
PS:我希望我的问题很全面,英语不是我的主要语言。