gpt4 book ai didi

graphene-python - 未调用 get_node 方法

转载 作者:行者123 更新时间:2023-12-05 07:19:12 34 4
gpt4 key购买 nike

我在 Django 对象类型定义中遇到 get_node 方法的问题。在我的案例中似乎没有调用该方法。

我什至尝试通过在 get_node 方法中暂停执行来使用 pdb 进行调试,但也没有用。

这是我的代码示例

class DocumentGQL(DjangoObjectType):
class Meta:
model = Document
interfaces = (graphene.relay.Node,)

@classmethod
def get_node(cls, info, id):
logger.info(id)
...

class Query(graphene.ObjectType):
document = graphene.relay.Node.Field(DocumentGQL)

控制台输出"POST/graphql/HTTP/1.1"200 26

Graphql 查询

{
document(id:"e551a1e5-6fae-47c2-be87-3feeb802bf7f"){
description
id
}
}

Graphql 输出

{
"data": {
"document": null
}
}

我相信我遵循了 docs这样做的时候。我错过了什么吗?请协助。

最佳答案

问题出在您传递给查询的 id 上。在 docs 的某处, 埋下这张小纸条:

The id returned by the Ship type when you query it will be a scalarwhich contains enough info for the server to know its type and its id.

For example, the instance Ship(id=1) will return U2hpcDox as the idwhen you query it (which is the base64 encoding of Ship:1), and whichcould be useful later if we want to query a node by its id.

所以基本上,如果您文档的 ide551a1e5-6fae-47c2-be87-3feeb802bf7f,那么进行查询的正确方法是提供一个 id查询中的 RG9jdW1lbnQ6ZTU1MWExZTUtNmZhZS00N2MyLWJlODctM2ZlZWI4MDJiZjdm。当然上面只是简单的输出:

printf 'Document:e551a1e5-6fae-47c2-be87-3feeb802bf7f' | base64

希望对您有所帮助。我和你在同一条船上。

关于graphene-python - 未调用 get_node 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57876629/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com