python - 在 Graphql 查询中收到不兼容的实例
问题描述
当我在下面的这个请求中失眠时,它会显示这个响应。我该如何解决这个问题?
要求:
query{
datewiseCoronaCasesList{
updatedAt,
affected,
death,
recovered
}
}
回复:
{
"errors": [
{
"message": "Received incompatible instance \"{'updated_at': datetime.date(2020, 4, 8), 'affected': 137, 'death': 42, 'recovered': 104}\"."
}
],
"data": {
"datewiseCoronaCasesList": [
null
]
}
}
我的期望我已经收到了错误消息,但是这样:
{
'updated_at': datetime.date(2020, 4, 8),
'affected': 137,
'death': 42,
'recovered': 104
}
我的 GraphQL 查询:
class CoronaQuery(graphene.ObjectType):
datewise_corona_cases_list = graphene.Field(CoronaCaseType)
def resolve_datewise_corona_cases_list(self, info, **kwargs):
return CoronaCase.objects.values('updated_at').annotate(
affected=Sum('affected'),death=Sum('death'), recovered=Sum('recovered'))
我的模型:
class CoronaCase(models.Model):
affected = models.IntegerField(default=0)
death = models.IntegerField(default=0)
recovered = models.IntegerField(default=0)
district = models.CharField(max_length=265, null=False, blank=False)
created_at = models.DateTimeField(default=timezone.now)
updated_at = models.DateTimeField(default=timezone.now)
def __str__(self):
return "Affected from: {}".format(self.district)
解决方案
在CoronaQuery
类下,由于您要返回对象(实例)列表, graphene.Field
因此应将其更改为graphene.List
.
我是说:
class CoronaQuery(graphene.ObjectType):
datewise_corona_cases_list = graphene.List(CoronaCaseType)
推荐阅读
- slack - Slack API 通道名称到对话 ID
- python - 如何在使用熊猫执行数据聚合时忽略某些值?
- python - 能否获取 EC2 实例的公网 IP 地址
- python - Tensorflow 对象检测中的输入张量与 Python 签名不兼容
- node.js - 缓冲到图像节点js
- python - 如何阻止python字典忽略列表中的输入
- ios - 处理具有多个捆绑 ID 的应用内购买
- python - Ipywidgets (Vbox) 没有出现在 Jupyter 笔记本上
- javascript - 使用 vee-validate 在 vue js 中验证时出错
- c# - 如何使 ac# 程序在后台和启动时运行