Ale*_*dor 4 django django-queryset
我有 3 个模型,其中 2 个对应于第一个。
class Parent(models.Model):
name = models.CharField....
...
class Child1(models.Model):
parent = models.ForeignKey(Parent)
...
class Child2(models.Model):
parent = models.ForeignKey(Parent)
...
Run Code Online (Sandbox Code Playgroud)
现在,在我看来,我有 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)
Run Code Online (Sandbox Code Playgroud)
注意上面的代码根本不起作用,它只是一个想法。
是的:
from django.db.models import Q
children1 = Child1.objects.filter(blah=blah)
children2 = Child2.objects.filter(blah=blah)
parents = Parent.objects.filter(Q(child1__in=children1) | Q(child2__in=children2))
Run Code Online (Sandbox Code Playgroud)
见文档: