为啥 Django DecimalField 属性“max_digits”是非可选的?
Posted
技术标签:
【中文标题】为啥 Django DecimalField 属性“max_digits”是非可选的?【英文标题】:Why is Django DecimalField attribute `max_digits` non-optional?为什么 Django DecimalField 属性“max_digits”是非可选的? 【发布时间】:2015-09-06 18:16:52 【问题描述】: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】:数据库(不是 ORM)需要它。 SQL decimal
列同时声明了精度(有效位数的总数)和小数位数(小数点右侧的位数)。
请参阅此答案中引用的形式语法:https://***.com/a/759606/2337736
【讨论】:
以上是关于为啥 Django DecimalField 属性“max_digits”是非可选的?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Django Crispy Forms 会抛出“模块‘django.forms.forms’没有属性‘BoundField’”