【发布时间】:2021-06-28 06:57:00
【问题描述】:
假设我们有这个模型:
class Product(models.Model):
....
price = models.DecimalField(max_digits=12, decimal_places=2)
class Order(models.Model):
....
product= models.ForeignKey(Product)
使用 select_related 进行 Order.objects.filter(...).select_related('product') 这样的查询后,order.product.id 和 order.product_id 之间的性能是否有差异?
【问题讨论】:
-
没有性能差异,因为我们使用
select_related('product')预填充了product。 -
不会有性能差异,因为如果我们
.select_related('product'),Django 将加载相关的Product对象,并将其作为属性添加到Order。 -
造型有点奇怪,因为这意味着对于一个订单,您只能订购一个(类型)
Product? -
@WillemVanOnsem 非常感谢。我写这个是为了解释我想要什么:)
标签: python django orm django-orm