(fields.E130) DecimalFields must define a 'decimal_places' attribute.


DecimalField類型:
固定精度的十進制數,一般用來存金額相關的數據。額外的參數包括DecimalField.max_digits(整個數字的長度)和DecimalField.decimal_places(小數點后面的有效位數)

模型定義時, DecimalField類型字段如下定義:
aaf_1kg_all = models.DecimalField(blank=True, null=True)
報錯:
(fields.E130) DecimalFields must define a 'decimal_places' attribute.
(fields.E132) DecimalFields must define a 'max_digits' attribute.

即: DecimalFields字段的“decimal_places”() 和 “max_digits” 屬性必須被定義,不能忽略。


那么修改一下:
aaf_1kg_all = models.DecimalField(blank=True, null=True, max_digits=10, decimal_places=10)
報錯:
Traceback (most recent call last):
[...]
File ".../django/db/backends/utils.py", line 200, in format_number
  value = value.quantize(decimal.Decimal(".1") ** decimal_places, context=context)
decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]

這里注意:
參數max_digits的值必須大於decimal_places的值。
0.10000 有效位是5位,但是1.00000的有效位是6位。
因此,如果max_digits=5, decimal_places=5, 那么,任何大於或者等於1的值出現都將報錯。

正面舉例:
max_digits=2, decimal_places=2
那么該字段可表示數值范圍為0.00 - 99.99
 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM