无法将float转换为Decimal:Djasto DecimalField的tastypie渲染

时间:2012-07-12 16:35:15

标签: django decimal tastypie

我有一个包含DecimalField的Django模型,我试图通过tastypie ModelResource公开它。当我请求tastypie URL时,我似乎无法通过此错误:

无法将float转换为Decimal。首先将浮点数转换为字符串

堆栈跟踪指的是packages / tastypie / fields.py“,第250行,这里

def convert(self, value):
    if value is None:
        return None

    return Decimal(value)

如果我在ModelResource定义中排除此字段,则错误消失并且请求正常返回(毫不奇怪)。

我想知道我是否应该在tastypie中明确定义DecimalField,但这对我来说还不清楚。

在其他情况下的低级python中,我通过执行Decimal(str(value))解决了这类问题。所以我在这个名为value的字段上尝试使用dehydrate_FOO:

def dehydrate_value(self, bundle):
    "for massaging data before it is returned to the client"
    return Decimal(str(bundle.data['value']))

但错误仍然存​​在。我在Stack Overflow和其他地方搜索过,但没有找到很多线索。这个问题有点相关: https://github.com/toastdriven/django-tastypie/issues/281

但我确实有tastypie的更新版本(v0.9.11)。

非常感谢任何指导。

1 个答案:

答案 0 :(得分:0)

升级你的Python。

您的Python版本是< 2.7,没有?

升级到python 2.7!