我试图用graphene django的DjangoFilterConnectionField
实现以下目标:
{
allUsers(username_Icontains: "abc") {
edges {
node {
id
demographics (name_Icontains: "xyz") {
id
name
}
}
}
}
}
我知道在graphenedjango中,可以使用graphene's List进行嵌套过滤
但我不确定我是否能用DjangoFilterConnectionField
来解决这个问题。在
我有以下石墨烯(中继)模式:
^{pr2}$在docs中,建议在连接的节点上也引入每个过滤器。所以应该是这样的:
class UserNode(DjangoObjectType):
class Meta:
model = User
interfaces = (Node,)
filter_fields = {
'username': ['exact', 'icontains', 'in'],
'demographic__name': ['icontains']
}
但我认为一定有更好的方法来实现这一点,因为我必须对20多个嵌套节点执行此操作。在
如果你觉得这不是真的,我觉得这不是真的
想象一下,如果一个用户有一个人口统计,你检索到了诱惑者,那么对于每一个用户,我们有一个人口统计,过滤一个人口统计是不合理的。唯一的方法是用UserNode过滤它(正如您所说和所做的)
如果您有一个ForeignKey或ManyToManyField to user模型,然后您可以使用单独的过滤器在user中检索它,那么嵌套过滤就可以工作了
我希望我能让你明白
相关问题 更多 >
编程相关推荐