首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Get查询返回值列表,而不是石墨烯中的对象-django

Get查询返回值列表,而不是石墨烯中的对象-django
EN

Stack Overflow用户
提问于 2018-08-09 16:58:53
回答 1查看 6.3K关注 0票数 6

我的django模型如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
class Article(model.Model):
    slug = models.SlugField(db_index=True, max_length=255, unique=True)
    title = models.CharField(db_index=True, max_length=255)
    body = models.TextField()

    tags = models.ManyToManyField(
        'articles.Tag', related_name='articles'
    )

    def __str__(self):
        return self.title

class Tag(model.Model):
    tag = models.CharField(max_length=255)
    slug = models.SlugField(db_index=True, unique=True)

    def __str__(self):
        return self.tag

和我的schema.py:

代码语言:javascript
代码运行次数:0
运行
复制
class ArticleType(DjangoObjectType):
    class Meta:
        model = Article

class Query(ObjectType):
    article = graphene.Field(ArticleType, slug=graphene.String())

    def resolve_article(self, info, slug):
        article = Article.objects.get(slug=slug)
        return article

使用以下命令查询此模型:

代码语言:javascript
代码运行次数:0
运行
复制
query {
  article(slug: "my_slug") {
    id
    title
    body
    slug
    tagList: tags {
      tag
    }
  }
}

产生:

代码语言:javascript
代码运行次数:0
运行
复制
{
  "data": {
    "article": {
      "id": "1",
      "title": "How to train your dragon 1",
      "slug": "how-to-train-your-dragon-y41h1x",
      "tagList": [
        {
          "tag": "dragon",
          "tag": "flies"
        }
      ]
    }
  }
}

**问题:**如何自定义返回的json输出?特别是,tagList是一个对象列表,其中的"tag“键是多余的。相反,我想返回一个字符串列表,这样输出就会变成:

代码语言:javascript
代码运行次数:0
运行
复制
{
  "data": {
    "article": {
      "id": "1",
      "title": "How to train your dragon 1",
      "slug": "how-to-train-your-dragon-y41h1x",
      "tagList": ["dragon","flies"]
    }
  }
}

我该怎么做呢??

EN

回答 1

Stack Overflow用户

发布于 2018-08-10 00:05:42

使用可返回字符串列表的解析器将自定义tag_list字段添加到ArticleType中。类似于:

代码语言:javascript
代码运行次数:0
运行
复制
class ArticleType(DjangoObjectType):
    tag_list = graphene.List(graphene.String)

    class Meta:
         model = Article

    def resolve_tag_list(self, info):
         return [tag.tag for tag in self.tags.all()]
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51762817

复制
相关文章

相似问题

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