为什么Django DecimalField属性`max_digits`是非可选的?

时间:2015-06-21 02:01:18

标签: django django-models

CommandError: System check identified some issues:

ERRORS:
(fields.E132) DecimalFields must define a 'max_digits' attribute.

是否有技术原因导致max_digits是Django模型字段DecimalField的必需属性?

文档说它使用了Python的[decimal][1]模块,但是python对象类型似乎并没有因为与小数对象的绝对位数有关而烦恼。

也许有一个不透明的ORM原因?

FloatFields(与DecimalFields进行比较)不要求您预先确定位数,为什么会出现小数?

我知道这个小小的附加属性不应该打扰我,但由于某种原因,自从我第一次使用这个字段类型以来,我似乎没有必要。

1 个答案:

答案 0 :(得分:1)

数据库(不是ORM)需要它。声明SQL decimal列的精度(有效位总数)和小数位(小数点右边的位数)。

例如,请参阅此答案引用的正式语法:https://stackoverflow.com/a/759606/2337736