【问题标题】:A simple query but Graphene-Django is returning null values一个简单的查询,但 Graphene-Django 返回空值
【发布时间】:2021-02-28 06:05:04
【问题描述】:

我正在尝试使用 graphene-django 进行简单查询,但我无法获取数据库,它给了我 null。

我认为代码没问题,出了什么问题,我为此工作了几个小时。

你知道它是什么吗?

提前致谢


import graphene
from graphene_django.types import DjangoObjectType, ObjectType
from myProject.models import Times


class TimesType(DjangoObjectType):
    class Meta:
        model=Times
        fields="__all__"


class Query(ObjectType):
    today_times = graphene.Field(TimesType, id=graphene.ID())
    all_times = graphene.List(TimesType)
   
    def resolve_todaytimes(self, info, id=None):
        return Times.objects.get(pk=id)

    def resolve_alltimes(root, info, **kwargs):
        return Times.objects.all()


schema = graphene.Schema(query=Query, mutation=Mutation)

query {todayTimes(id:"1029"){id}}

{
  "data": {
    "todayTimes": null
  }
}

【问题讨论】:

    标签: graphql graphene-django


    【解决方案1】:

    解析器方法应以resolve_<FieldName>格式命名

    class Query(ObjectType):
        today_times = graphene.Field(TimesType, id=graphene.ID())
        all_times = graphene.List(TimesType)
       
        def resolve_today_times(self, info, id=None): # not `resolve_todaytimes`
            return Times.objects.get(pk=id)
    
        def resolve_all_times(root, info, **kwargs): # not `resolve_alltimes`
            return Times.objects.all()

    或者,您可以使用 resolver 参数将可调用解析器设置为,

    def resolve_todaytimes(self, info, id=None):
        return Times.objects.get(pk=id)
    
    
    def resolve_alltimes(root, info, **kwargs):
        return Times.objects.all()
    
    
    class Query(ObjectType):
        today_times = graphene.Field(
            TimesType,
            id=graphene.ID(),
            resolver=resolve_todaytimes
        )
        all_times = graphene.List(
            TimesType,
            resolver=resolve_alltimes
        )

    【讨论】:

      猜你喜欢
      • 2015-12-09
      • 2016-06-29
      • 1970-01-01
      • 2019-10-31
      • 2021-01-19
      • 1970-01-01
      • 2019-01-16
      • 2019-05-14
      • 1970-01-01
      相关资源
      最近更新 更多