2
我有3個模型,其中2個對應於第一個。現在Django - 用子對象過濾查詢集(ForeignKey)
class Parent(models.Model):
name = models.CharField....
...
class Child1(models.Model):
parent = models.ForeignKey(Parent)
...
class Child2(models.Model):
parent = models.ForeignKey(Parent)
...
,在我看來,我有2個查詢集過濾Child1
和Child2
對象。
有沒有辦法檢索篩選後的查詢集中的所有Parent
對象?
喜歡的東西...
children1 = Child1.objects.filter(blah=blah)
children2 = Child2.objects.filter(blah=blah)
parents = Parent.objects.filter(self__in=children1 or self__in=children2)
注意上面的代碼不工作的話,那就是這個想法。
我猜Q對象會幫我,但是,是否有必要使用'v alue list'或'value'在children1和children2的查詢集中,以使其工作? – 2015-02-09 19:32:49
不,看第一個鏈接 – Anentropic 2015-02-09 19:33:21
'Q'對象只是必要的,因爲你需要在過濾器中進行'OR'查詢......如果你想要一個'AND'查詢,那麼你可以傳遞多個kwargs到'filter '方法 – Anentropic 2015-02-09 19:35:10