【问题标题】:django - How to set default value for DecimalField in django 1.3?django - 如何在 django 1.3 中设置 DecimalField 的默认值?
【发布时间】:2013-07-18 08:27:32
【问题描述】:

我的模型的一个字段如下所示:

total_amount = models.DecimalField(max_digits=20,decimal_places=4,default=Decimal('0.0000'))

但是当我运行这个命令python manage.py syncdb时,它会显示这个错误:

NameError: name 'Decimal' is not defined

我已经导入了from django.db import models,我还需要导入其他东西吗?
请帮忙!

【问题讨论】:

  • 你一开始有没有试过default=0.0?另外仅供参考,错误说您需要导入Decimal(),因为您的 PYTHONPATH 确实知道。
  • @MathieuMarques 嗨,default=0.00 或 default=0.0 在创建第一个实例时将被视为 django 中的浮点数,然后您不能第一次添加带小数的浮点数,请检查 type(total_amount) 和 default= 0.00

标签: python django django-models


【解决方案1】:

您需要导入十进制。

from decimal import Decimal

【讨论】:

    【解决方案2】:
    total_amount = models.DecimalField(max_digits=20, decimal_places=4, default=0.0)
    

    【讨论】:

      【解决方案3】:

      当您在十进制字段中收到有关默认值的错误时,您还必须注意 max_digits e.x. 9 表示点前 8 位和点后 1 位。

      所以 max_digits=5 和 default=Decimal('99999.0')(总共 6 位,包括十进制末尾的尾随 0)是无效的十进制并且 Decimal('9999.0') 是正确的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-10
        相关资源
        最近更新 更多