我有一个带有一些财务数据的 JSONField。我不能将它存储为浮点数,因为我需要精度,所以我将它存储为字符串。
我的模型看起来像这样
class Finance(models.Model)
bill_data = JSONField(
verbose_name=_("Bill data"),
default=dict,
blank=True,
)
然后我保存
bill_data = dict(paid=str(some_decimal_amount))
Finance.objects.create(bill_data=bill_data)
我尝试使用Cast
将其转换回十进制,因为我需要使用表达式,
Finance.objects.all().annotate(paid=Cast('bill_data__paid', DecimalField()))
我收到一个错误
return self.cursor.execute(sql, params)
django.db.utils.DataError: invalid input syntax for integer: "none"
LINE 1: ...der"."bill_data", ("myapp_finance"."bill_data")::numeric(No...
有谁知道如何在表达式中使用fromstr
或JSONField
如何正确处理?Decimal
JSONField