我在Django有三个模型。
class Product(models.Model):
name = mdoels.CharField()
class ProductCharateristics(models.Model):
name = models.CharField()
description = models.TextField()
class ProductCharacteristicValues(models.Model):
product_characteristic = models.ForeignKey(ProductCharacteristics)
value = models.IntegerField()
prduct = models.ForeignKey(Product)
特性列表可能会改变,所有产品都是一样的,每个特性都可以有多个值。
我想用django ORM复制以下SQL语句:
select * from ProductCharateristics as pc left join ProductCharacteristicValues as pcv on pc.id = pcv.product_characteristics where pcv.product = 1
此查询检索两个表中的所有行和所有列。
2条答案
按热度按时间ghhkc1vu1#
这应该是可行的:
frebpwbc2#
您可以使用以下命令**
.filter(…)
**[Django-doc]:然而,如果你想要的是带有值的特征,那么查询
ProductCharacteristicValue
表并从中获取product_characteristic
更有意义,所以:这将返回
ProductCharacteristicValues
对象的QuerySet
,但是如果您访问.product_characteristic
,它将不会进行额外的查询,因为该数据已添加到初始查询中。