选择*进行反向查找

问题描述 投票:0回答:1

我在 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

此查询从两个表中检索所有行和所有列。

django django-queryset reverse-lookup
1个回答
0
投票

这应该有效:

ProductCharacteristics.objects.filter(productcharacteristicvalues_set__product__id=1)
© www.soinside.com 2019 - 2024. All rights reserved.