我试图将操作结果保存在我的admin.py中,我有这个错误:
量化结果当前上下文的位数太多
....
def save_model(self, request, obj, form, change):
usuario_libra = obj.consignee.membresia.libra
valores = Valores.objects.get(pk=1)
vtasa = valores.tasa
vaduana = valores.aduana
vgestion = valores.gestion
vfee = valores.fee
vcombustible = valores.combustible
trans_aereo = obj.peso * usuario_libra * vtasa
aduana = (obj.peso * vaduana )*vtasa
fee_airpot = (obj.peso * vfee)*vtasa
combustible = (obj.peso * vcombustible)*vtasa
itbis = (trans_aereo+vgestion)*Decimal(0.16)
total = trans_aereo + vgestion + aduana + fee_airpot + combustible + itbis
if not obj.id:
obj.total = total
...
这是什么意思?,我的所有模型字段都是十进制的 请帮忙
谢谢
答案 0 :(得分:25)
我能够通过增加“max_digits”来解决这个问题。现场选择。
class Myclass(models.Model):
my_field = models.DecimalField(max_digits=11, decimal_places=2, blank=True, null=True)
请务必使其足够大,以适合您想要保存的最长数字。
如果不起作用,可能还需要将精度设置得更大:
from decimal import getcontext
...
getcontext().prec = 11
有关完整的上下文参数,请参阅python十进制文档。