我想知道哪個是過濾對象的最佳方法,它具有一個外鍵模型的多個參數/值對。 例子: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