我想知道哪个是过滤对象的最佳方法,它具有一个外键模型的多个参数/值对。 例子:django:通过一个外键模型的多个键值对来过滤对象
class Car(models.Model):
name = models.SlugField("Name")
class Parameter(models.Model):
name = models.SlugField()
value = models.TextField(blank=True)
car = models.ForeignKey('Car', related_name = 'parameters')
比方说,我有一些汽车有这3个具体参数:(NAME =颜色,值=蓝色); (名称=轮胎,价值=固特异); (名称=座位,价值=皮革)
过滤所有具有这些特定参数/值组合的汽车的最佳方法是什么? 我现在所做的是在一个循环之后过滤一个参数/值对。但这需要很长时间,我相信还有更好的方法。不知何故,通过聚合也许......?
现在唯一的办法,我得到它的工作是:
Job.objects.filter(Q(parameters__name="tire", parameters__value="Goodyear")).filter(Q(parameters__name="color", parameters__value="blue")).filter(Q(parameters__name="seat", parameters__value="leather"))
不,我需要这些参数的ANDing。我只想让那些拥有这三个参数的汽车(即可能有没有参数颜色的汽车等)和2.它们具有给定的值。我已经试过了你用&做的方式,但是这不起作用。 – 2014-09-08 09:17:23