我有 2 张桌子:
- 产品(ID,名称)
- 属性(id、product_id、名称、值)
搜索产品时如何加入“属性”表2次?由于稍后分页,它们必须在一个查询中。
示例:搜索必须具有 2 个属性的产品 - 一个为name=att1, value=value1
,另一个为name=att2, value=value2
。
源代码:
class Product(models.Model):
product_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, null=False)
class Attribute(models.Model):
attribute_id = models.AutoField(primary_key=True)
product = models.ForeignKey(Product, null=False)
name = models.CharField(max_length=100, null=False)
value = models.CharField(max_length=100, null=False)
一个不工作的查询:
Product.objects.select_related().filter('attribute__name': 'n1', 'attribute__value':'v1').filter('attribute__name': 'n2', 'attribute__value':'v2')