首先,使用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文档,堆栈溢出和各种博客...我自己尝试了一些逻辑方法,而没有任何成功。
我渴望在此处开始为我们的需求处理这些类型的更新。任何建议或"如何"位置的链接将不胜感激!
如果您想将子字段添加到描述中,则需要做几件事:
- 创建新的描述对象类型,其中包含您想要的子字段,例如:
class ProductDescription(graphene.ObjectType):
productInfo1 = graphene.String()
productInfo2 = graphene.String()
productInfo3 = graphene.String()
- 在
Product
下使用新类型设置description
字段:
class Product(CountableDjangoObjectType):
...
description = graphene.Field(ProductDescription)
- 在
Product
下为description
添加解析器类型:
def resolve_description(self, info):
return ProductDescription(
productInfo1=self.description,
productInfo2='Some additional info',
productInfo3='Some more additional info',
)
Saleor的GraphQl API基于石墨烯框架。您可以在此处找到有关解析器和对象类型的更多信息:https://docs.graphene-python.org/en/latest/types/objecttypes/#resolvers。