我在 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
此查询从两个表中检索所有行和所有列。
这应该有效:
ProductCharacteristics.objects.filter(productcharacteristicvalues_set__product__id=1)