2

我希望用户能够输入标准十进制值,如 1.51 或以科学计数法输入值,如 4.08E+13。

我在我的模型中设置了一个小数字段,但是当我尝试输入上面的示例时,我收到了以下验证消息:

“确保不超过 3 位小数。”

边注:

我确实注意到 Python 已经支持这种格式:

>>> from decimal import Decimal
>>> print Decimal("4.08E+13")
4.08E+13

所以也许在 Django 中设置一些东西不会太难?

4

1 回答 1

2

这看起来像一个 Django 错误, DecimalField.validate() 对于正指数是错误的:

>>> from django.forms import DecimalField
>>> f = DecimalField(max_digits=10, decimal_places=1)
>>> f.validate(Decimal('1E+2'))
Traceback (most recent call last):
...
ValidationError: [u'Ensure that there are no more than 1 decimal places.']

您可能想提交一个错误

于 2011-04-06T14:34:38.833 回答