如何允许石墨烯GraphQl中的任何字段过滤
Posted
技术标签:
【中文标题】如何允许石墨烯GraphQl中的任何字段过滤【英文标题】:How to allow any field filtering in graphene GraphQl 【发布时间】:2021-10-29 09:03:55 【问题描述】:我想知道,是否有办法在石墨烯 GraphQl 解析器中传递更多要查询的参数。
因此,此代码仅适用于 wgr_bez
:
class GraphqlService(graphene.ObjectType):
get_single_article = graphene.Field(ArticleGrapheneModel, wgr_bez=graphene.String)
@staticmethod
async def resolve_get_single_article(parent, info, **kwargs):
article = await info.context['request'].state.db.select_article_with_filter(kwargs)
return article[0][0].to_json()
使用 **kwargs 我可以从请求中获取任何列:值对,但是如何传递任何列:值,我不明白。
我希望能够用更通用的东西或至少是字典来替换它。我在文档中看到了它,但是当我这样做时出现错误:
get_single_article = graphene.Field(ArticleGrapheneModel, 'wgr_bez': graphene.String, 'id': graphene.Int)
ValueError: Unknown argument "wgr_bez".
【问题讨论】:
【参考方案1】:我找到了答案,需要如下定义参数:
get_single_article = graphene.Field(ArticleGrapheneModel, args='wgr_bez': graphene.Argument(graphene.String),
'id': graphene.Argument(graphene.Int))
【讨论】:
以上是关于如何允许石墨烯GraphQl中的任何字段过滤的主要内容,如果未能解决你的问题,请参考以下文章
如何覆盖石墨烯中的 DjangoModelFormMutation 字段类型?
与石墨烯后端反应阿波罗中 graphql 接口类型的常见字段