我有一个包含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)。
非常感谢任何指导。
答案 0 :(得分:0)
升级你的Python。
您的Python版本是< 2.7,没有?
升级到python 2.7!