我希望用户能够输入标准十进制值,如 1.51 或以科学计数法输入值,如 4.08E+13。
我在我的模型中设置了一个小数字段,但是当我尝试输入上面的示例时,我收到了以下验证消息:
“确保不超过 3 位小数。”
边注:
我确实注意到 Python 已经支持这种格式:
>>> from decimal import Decimal
>>> print Decimal("4.08E+13")
4.08E+13
所以也许在 Django 中设置一些东西不会太难?
我希望用户能够输入标准十进制值,如 1.51 或以科学计数法输入值,如 4.08E+13。
我在我的模型中设置了一个小数字段,但是当我尝试输入上面的示例时,我收到了以下验证消息:
“确保不超过 3 位小数。”
边注:
我确实注意到 Python 已经支持这种格式:
>>> from decimal import Decimal
>>> print Decimal("4.08E+13")
4.08E+13
所以也许在 Django 中设置一些东西不会太难?
这看起来像一个 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.']
您可能想提交一个错误。