我有一个包含 DecimalField 的 Django 模型,我试图通过一个美味的 ModelResource 公开它。当我请求美味的 URL 时,我似乎无法克服这个错误:
无法将浮点数转换为十进制。首先将浮点数转换为字符串
堆栈跟踪指的是 packages/tastypie/fields.py",第 250 行,在此处附近
def convert(self, value):
if value is None:
return None
return Decimal(value)
如果我在 ModelResource 定义中排除了这个字段,错误就会消失并且请求会正常返回(并不奇怪)。
我想知道我是否应该在tastepie 中明确定义一个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
但我确实有一个更新版本的美味派(v0.9.11)。
非常感谢任何指导。