zoukankan      html  css  js  c++  java
  • (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
     


  • 相关阅读:
    《JavaScript高级程序设计》学习笔记12篇
    JS学习笔记12_优化
    JS学习笔记11_高级技巧
    JS学习笔记10_Ajax
    JS学习笔记9_JSON
    JS学习笔记8_错误处理
    为什么要在列表组件里写 Key ?
    var、let 和 const 的区别以及暂时性死区
    小程序性能优化要点
    Node require() 加载规则
  • 原文地址:https://www.cnblogs.com/haoshine/p/5822171.html
Copyright © 2011-2022 走看看