django mysql decimal_使用Django DecimalField和PostgreSql数字字段保持输出精度

我通过Django将数据保存到PostgreSQL后端.我的模型中的许多字段都是DecimalFields设置为任意高的max_digits和decimal_places,对应于数据库后端中的数字列.每列中的数据具有先验未知的精度(或小数位数),并且给定列中的每个数据不需要具有相同的精度.

例如,模型的参数可能如下所示:

{'dist': Decimal("94.3"), 'dist_e': Decimal("1.2")}

{'dist': Decimal("117"), 'dist_e': Decimal("4")}

其中键是数据库列名.

在输出时,我需要保留并重新显示这些数据的精确度.换句话说,在查询数据库之后,显示的数据看起来与读入的数据完全一样,没有额外的数据.或者在小数中缺少尾随0.但是,当在django shell或admin界面中查询时,所有DecimalField数据都会返回许多尾随0.

我已经看到类似的问题回答金钱值,其中精度(2位小数)是已知的,并且对于给定列中的所有数据都是相同的.但是,当精度不同且事先不知道时,如何最好地保留Django中的Decimal值和PostgreSQL中的数值所表示的精确精度?

编辑:

可能是另一个有用的信息:当查看在Django dbshel​​l中保存数据的表时,也会出现许多尾随0.在保存到PostgreSQL后端时,python Decimal值显然转换为models.py文件中指定的最大精度值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值