Django Model中的空整数字段在GraphQL

时间:2017-08-03 20:57:24

标签: django-models graphql

在我的一个Django模型中,我有这个领域:

version = models.PositiveSmallIntegerField(blank=True, null=True)

为了测试它,我通过DBBrowser为SQLite手动创建了一条新记录,并将该字段留空。

当我在对象上发出GraphQL查询时,我收到了此错误消息:

"errors": [ { "message": "could not convert string to float: " } ]

将空字段更新为0或1或2等,错误消息消失。

我不认为空字段是错误的,特别是因为我在字段定义中明确指出它可能是空的。如果没有默认值0(零),我该如何解决此问题以消除错误消息?

罗伯特

1 个答案:

答案 0 :(得分:0)

Sqlite在NULL列中存储了一个空字符串,而不是versiongraphene.Int无法处理。通常django不会让你在通过它保存时发生这种情况。如果您想担心外部创建的值,那么您可以向模型添加一个解析器,以确保返回None而不是空字符串。

class MyModel(DjangoObjectType):

    @graphene.resolve_only_args
    def resolve_version(self):
        return self.version or None