首先,具有GraphQL的Saleor很棒。只是喜欢它。
我们出售的产品还有其他需要从Graphql获取的元数据。开箱即用的Graphql查询可以正常工作,例如:
{
product (id: "UHJvZHVjdDo3Mg==") {
id
name
description
}
}
我需要做的是使用其他列(例如productInfo1,productInfo2和productInfo3)公开我的产品表中的数据。这部分当然很容易。
但是,我在努力更新Saleor Graphql方面很挣扎,因此我可以运行如下查询:
{
product (id: "UHJvZHVjdDo3Mg==") {
id
name
description {
productInfo1
productInfo2
productInfo3
}
}
}
我浏览过Saleor文档,Stack Overflow和各种博客……我自己尝试了一些合乎逻辑的方法,但没有成功。
在这里,我渴望着手针对我们的需求进行此类更新。任何建议或指向“如何”位置的链接将不胜感激!
答案 0 :(得分:1)
如果您想在说明中添加子字段,则需要做几件事:
class ProductDescription(graphene.ObjectType):
productInfo1 = graphene.String()
productInfo2 = graphene.String()
productInfo3 = graphene.String()
description
类型下用新类型设置Product
字段:class Product(CountableDjangoObjectType):
...
description = graphene.Field(ProductDescription)
description
类型下为Product
添加解析器:def resolve_description(self, info):
return ProductDescription(
productInfo1=self.description,
productInfo2='Some additional info',
productInfo3='Some more additional info',
)
Saleor的GraphQL API基于Graphene框架。您可以在这里找到有关解析器和对象类型的更多信息:https://docs.graphene-python.org/en/latest/types/objecttypes/#resolvers。