通过graphene django中的主键查找(带继电器)
我希望能够使用人工主键而不是不透明的中继ID编写一个如下所示的查询:通过graphene django中的主键查找(带继电器),django,graphql,graphene-python,graphene-django,Django,Graphql,Graphene Python,Graphene Django,我希望能够使用人工主键而不是不透明的中继ID编写一个如下所示的查询: query { issue(pk: 10) { pk state } } 我已经能够从模型中添加intpk字段;然而,我还没有弄清楚如何查询它(我有点困惑如何切换到自定义过滤器集) 这将引发关于pk的错误: TypeError: 'Meta.fields' contains fields that are not defined on this FilterSet: pk 通
query {
issue(pk: 10) {
pk
state
}
}
我已经能够从模型中添加intpk
字段;然而,我还没有弄清楚如何查询它(我有点困惑如何切换到自定义过滤器集)
这将引发关于pk
的错误:
TypeError: 'Meta.fields' contains fields that are not defined on this FilterSet: pk
通过此设置,我可以编写如下查询:
query {
issue(id: 'ascadf2e31af=') {
state
}
}
但由于应用程序以前使用的是人类可读的ID,因此我也希望支持这一点
关于如何设置自定义过滤器集,或者是否有一种使用graphene django的原生方法,您有什么想法吗?您可能只想使用默认的
graphene.Field
并将其添加到您的代码中,如下所示:
import graphene
from django.shortcuts import get_object_or_404
class Query(graphene.ObjectType):
issue_by_pk = Field(IssueNode, pk=graphene.Int())
def resolve_issue_by_pk(parent, info, **kwargs):
pk = kwargs.get('pk')
return get_object_or_404(models.Issue, pk=pk)
您的graphQL查询
query findIssue {
issueByPk(pk:1){
id # will return relay id
}
}
让我知道这是否适合你
query findIssue {
issueByPk(pk:1){
id # will return relay id
}
}