django - DecimalField max_digits,decimal_places 解释

Far*_*mad 8 python django django-models

所以我刚刚开始使用 Django 并用它来存储外汇价格,这些价格表示为1.212421.20641等...

模型.py

from django.db import models

# Create your models here.
class ForexPrice(models.Model):
    openPrice = models.DecimalField(max_digits=6, decimal_places=6)
    highPrice = models.DecimalField(max_digits=6, decimal_places=6)
    lowPrice = models.DecimalField(max_digits=6, decimal_places=6)
    closePrice = models.DecimalField(max_digits=6, decimal_places=6)
Run Code Online (Sandbox Code Playgroud)

我的问题是:
max_digits 和decimal_places 属性如何工作?我对两个字段都使用 6,假设max_digits=6允许存储最多 6 位数字的值,即:123456.000000,同时decimal_palces=6支持最多 000000.123456 的值。

这个假设是正确的还是我错过了什么?

当我将记录保存到数据库时出现以下错误:

精度为 6、小数位数为 6 的字段必须四舍五入到小于 1 的绝对值。

Kim*_*son 27

max_digits必须等于或高于decimal_places

如果您要拥有123456.654321,则必须定义max_digits=12, decimal_places=6

max_digits包括decimal_places.