Django 过滤特定的 QuerySet.values()

use*_*136 1 python django django-queryset

假设我有一个模型 ClassParent和一个 Class Child。并且 child 有一个名为的字段,status并且ForeignKeyParent.

假设我通过调用过滤器(以便拥有一个 QuerySet)来检索一个父对象 p = Parent.objects.filter(pk=1)

现在,如果我打电话,p.values('children__name')我将收到该父母的孩子姓名词典列表。

我的问题是,如果我想调用p.values('children__name')但仅status在孩子的特定值时限制值,我该怎么做?

我还想确保原始 QuerySet 没有改变,因为我不想过滤它(对于更大的 QuerySet)。我只想过滤基于某个参数的值。

有没有办法在 Django 中做到这一点?

Dan*_*man 8

您只需过滤:

p.filter(children__status='whatever').values('children__name')
Run Code Online (Sandbox Code Playgroud)