在我的一个Django模型中,我有这个领域:
version = models.PositiveSmallIntegerField(blank=True, null=True)
为了测试它,我通过DBBrowser为SQLite手动创建了一条新记录,并将该字段留空。
当我在对象上发出GraphQL查询时,我收到了此错误消息:
"errors": [ { "message": "could not convert string to float: " } ]
将空字段更新为0或1或2等,错误消息消失。
我不认为空字段是错误的,特别是因为我在字段定义中明确指出它可能是空的。如果没有默认值0(零),我该如何解决此问题以消除错误消息?
罗伯特
答案 0 :(得分:0)
Sqlite在NULL
列中存储了一个空字符串,而不是version
,graphene.Int
无法处理。通常django不会让你在通过它保存时发生这种情况。如果您想担心外部创建的值,那么您可以向模型添加一个解析器,以确保返回None
而不是空字符串。
class MyModel(DjangoObjectType):
@graphene.resolve_only_args
def resolve_version(self):
return self.version or None