有没有一种方法可以从django-money MoneyField中仅提取十进制值而不使用货币值?

时间:2018-10-01 19:34:09

标签: django

我只想从MoneyField值中提取十进制值。现在,该字段的值呈现为US $ 1.00之类的值,但这在仅需要使用十进制值时并不理想。我收到诸如[“'US $ 1.00'的值必须为十进制数字”之类的错误消息。

1 个答案:

答案 0 :(得分:2)

Django的MoneyField使用py-moneyed package [GitHub]Money类作为数据的“ Python端”。

Money class [GitHub]基本上具有两个属性:amountcurrency

因此,如果您有Money对象,则可以检索.amount对象,如GitHub页面所示:

>>> from moneyed import Money, USD
>>> price = Money('19.50', USD)
>>> price
19 USD

>>> price.amount
Decimal('19.50')

>>> price.currency
USD

>>> price.currency.code
'USD'

因此,您可以通过调用构造函数来创建Money对象,并检索属性以对金额和货币进行单独处理。