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 に答える