从django保存十进制值

时间:2012-02-01 02:35:33

标签: mysql django django-models django-forms decimal

今天我遇到了这样一个问题。我有一个带有十进制字段的Django表单和一个带十进制字段的模型。

UPD:

class Payment(models.Model):
    txn_id = models.DecimalField(unique=True, db_index=True, max_digits=28, decimal_places=0, verbose_name=_('transaction ID'))
    sum = models.DecimalField(max_digits=18, decimal_places=2, verbose_name=_('amount'))
    txn_date = models.DateTimeField(verbose_name=_('date'))
    account = models.CharField(max_length=50, verbose_name=_('account ID'))

    created_on = models.DateTimeField(auto_now_add=True, editable=False)

class PaymentForm(PaymentIdForm):
    command = forms.ChoiceField(choices=[(x, x) for x in COMMANDS])
    sum = forms.DecimalField(max_digits=18, decimal_places=2, min_value=1)
    txn_date = forms.DateTimeField(input_formats=['%Y%m%d%H%M%S'], required=False)

当我用值1000000.00填充表单字段然后保存它,在mysql中我看到它保存为99999.99。

可能是什么问题?

已解决:我的数据库未同步。在MySQL字段中声明为十进制(7,2)。 根据我的理解,保存的值是99999.99而不是999999.99。

0 个答案:

没有答案