3

编辑!!!- 当我创建一个新对象时,将值转换为字符串似乎工作正常,但是当我尝试编辑现有对象时,它不允许这样做。

所以我的 Decimal(3,2) 模型之一中有一个小数字段

当我查询所有这些对象并尝试设置此字段时:

fieldName = 0.85

或者

fieldName = .85

它会发出嘶嘶声,“无法将浮点数转换为十进制字段,请先尝试转换为字符串”...

那么我这样做:

fieldName = str(0.85)

同样的错误。

我什至尝试过:

fieldName = "0.85"

同样的错误。我在这里遇到了某种框架错误,还是什么?请注意,当我实际进入 Django Admin 并手动编辑对象时,它工作正常。

我在 Python 2.6 上运行 Django 1.1

4

2 回答 2

11
from decimal import Decimal
object.fieldName = Decimal("0.85")

或者

f = 0.85
object.fieldName = Decimal(str(f))
于 2009-09-24T21:20:21.120 回答
3

Django DecimalField是“......由 python Decimal实例表示。” 你可以试试:

>>> obj.fieldName = Decimal("0.85")

行为也可能因您使用的数据库后端而异。使用 sqlite,我可以将字符串值分配给新对象和现有对象中的 DecimalFields 而不会出错。

于 2009-09-24T18:39:29.117 回答