0
我的簡化模型如下:與多於一個的條件的Django多對多濾波器
class Function(models.Model):
name = models.CharField(max_length=20)
params = models.ManyToManyField("Param")
class Param(models.Model):
name = models.CharField(max_length=20)
value = models.CharField(max_length=20)
所以,每一個功能對象具有一組參數,例如:
f = Function(name="my_function")
f.save()
param1 = Param(name="height", value="100")
param1.save()
param2 = Param(name="width", value="200")
param2.save()
f.params.add(param1)
f.params.add(param2)
的問題是我無法確定如何使用函數名稱,參數名稱和參數值上的過濾器來選擇函數。
對於上述功能,選擇應該是:用含有與名稱爲「高度」和值「100」和參數名稱爲「寬度」和值「200」參數名「創建my_function」
Get函數。
預先感謝您!
它的工作原理! Q(params__name ='width')&Q(params__value =「200」),但它沒有工作。將Q對象分成兩個過濾器可以。謝謝! – edkirin
沒問題! :) –