关于Django石墨烯,我有以下模型:
class Entry(models.Model):
STATE_CHOICES = [
("Open", "Open"),
("Processing", "Processing"),
("Closed", "Closed"),
("Deleted", "Deleted"),
]
# ...
state = models.CharField(max_length=10, choices=STATE_CHOICES,
default="Open")
使用以下石墨烯模式:
class EntryType(DjangoObjectType):
class Meta:
model = models.Entry
class Query(graphene.ObjectType):
entries = graphene.List(EntryType)
def resolve_entries(self, info):
return models.Entry.objects.all()
但当我使用下一个查询时:
query AllEntries{
entries{
id
state
}
}
我得到这个错误:
{
"errors": [
{
"message": "Expected a value of type \"EntryState\" but received: OPEN",
"path": [
"entries",
1,
"state"
]
}
],
}
有人能解释一下我做错了什么吗
这是因为这一行:
即使ORM接受并正确保存在数据库中,它也会混淆graphene,因为它试图将字符串与枚举值进行比较
要解决此问题,您可以这样做:
如果不想创建/执行迁移,也可以创建一个graphene枚举类型,然后将其映射到
resolve_state
函数中相关问题 更多 >
编程相关推荐