【发布时间】:2020-11-24 09:30:41
【问题描述】:
我有这种情况:
class People(models.Model):
name = models.CharField(max_length=200)
age =...
city=...
...
parent = models.ForeignKey(People)
我正在构建一个搜索函数,它将用户的条件带入 Q 过滤器列表并返回结果的查询集。
如何让查询集包含每个有父母但父母不符合搜索条件的人的父母?
Example:
Person A - 60 Years old
Person B - 30 Years old - Parent A
Person C - 30 Years old
Person D - 40 Years old
so now filtering on Age 30, I want the result to show:
A,B,C since A is a parent of B, rather than just B & C
我可以展平结果并获取 id,然后对任何父母进行第二次查询并合并两个查询集。
但是有什么方法可以让我在 Q 过滤器功能中一次性做到这一点?
【问题讨论】:
-
你想在
parent里面过滤吗? -
我已经用一个例子更新了这个问题,如果这样更清楚?
标签: django django-models filter foreign-keys django-queryset