首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用新添加的DB表字段更新Saleor的Graphql响应?

如何用新添加的DB表字段更新Saleor的Graphql响应?
EN

Stack Overflow用户
提问于 2019-05-22 14:40:59
回答 1查看 647关注 0票数 1

首先,GraphQL的Saleor是很棒的。就爱它吧。

我们正在销售的产品还需要从Graphql获得额外的元数据。在开箱即用的情况下,Graphql查询工作正常,例如:

代码语言:javascript
复制
{
  product (id: "UHJvZHVjdDo3Mg==") {
    id
    name
    description
  }
}

我需要做的是用附加列(如productInfo1、productInfo2和productInfo3 )从我的products表中公开数据。当然,这部分很容易。

但是,我很难更新Saleor Graphql,这样我就可以运行如下查询:

代码语言:javascript
复制
{
  product (id: "UHJvZHVjdDo3Mg==") {
    id
    name
    description {
      productInfo1
      productInfo2
      productInfo3
    }
  }
}

我看过Saleor文档、堆栈溢出和各种博客.我自己也尝试过一些合乎逻辑的方法,但没有成功。

为了满足我们的需要,我很想开始研究这些类型的更新。任何建议或链接到“如何”的地点将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-22 21:40:19

如果您想在描述中添加子字段,那么您必须做几件事:

  1. 创建包含所需子字段的新的description对象类型,例如:
代码语言:javascript
复制
class ProductDescription(graphene.ObjectType):
    productInfo1 = graphene.String()
    productInfo2 = graphene.String()
    productInfo3 = graphene.String()
  1. 使用新类型在description类型下设置Product字段:
代码语言:javascript
复制
class Product(CountableDjangoObjectType):
    ...
    description = graphene.Field(ProductDescription)
  1. description类型下为Product添加解析器:
代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56259396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档