Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Money-添加两个不同货币的MoneyField,并以给定货币生成输出_Python_Django - Fatal编程技术网

Python Django Money-添加两个不同货币的MoneyField,并以给定货币生成输出

Python Django Money-添加两个不同货币的MoneyField,并以给定货币生成输出,python,django,Python,Django,嗨,在过去的几天里,我一直在绞尽脑汁想如何操纵dj的资金领域。 以下是我的两个模型字段: client_cost = MoneyField( _('client cost'), max_digits=10, decimal_places=2, default_currency='AUD', null=True, ) camera_operator_cost = MoneyField( _('camera operator cost'),

嗨,在过去的几天里,我一直在绞尽脑汁想如何操纵dj的资金领域。 以下是我的两个模型字段:

 client_cost = MoneyField(
    _('client cost'),
    max_digits=10,
    decimal_places=2,
    default_currency='AUD',
    null=True,
)

camera_operator_cost = MoneyField(
    _('camera operator cost'),
    max_digits=10,
    decimal_places=2,
    default_currency='AUD',
    null=True,
)
它们可以有完全不同的货币(默认为“澳元”)

我需要能够:

  • 从这些字段提取货币。(需要确切的陈述)
  • 添加这两个字段,这两个字段可以包含任何货币的金额
  • 用我想要的任何货币重新格式化总数。让我们假设澳元的总价值为250,现在我希望美元的总价值为184美元$
请帮忙


PS:我在使用这个:

你通过以下方式获得
一些实例的
金钱
实例:

money1 = some_instance.client_cost
money2 = some_instance.camera_operator_cost
因此,我们可以执行属性获取

如果安装,则可以将这些货币兑换为货币,并将其相加。例如,如果给定的货币是美元,那么我们可以通过以下方式获得两种成本的总和:

convert_money(money1, 'USD') + convert_money(money2, 'USD')
编辑

对于
Money
对象,您可以分别使用
some\u Money.amount
(a
Decimal
对象)和
some\u Money.currency
对象)获取金额和货币

Currency
对象属性,如
.code
.countries
.name

例如,如果您希望获得
money1
的货币代码,您可以使用:

money1.currency.code  # will be 'USD', 'EUR', 'AUD', etc.

我如何知道这些字段的货币?比如:print(client_cost.currency)/'USD'Hey@Willem Van Onsem,是的,它帮助解决了我的问题。虽然实际的解决方案略有不同。看来我们可以直接比较货币1.currency和货币2.currency。令人惊讶的是,money1.currency.code给了我一个错误,说.code属性不存在。我尝试过调试,但无法理解问题。目前,只需执行x.currency==y.currency就行了。关于我的第三点,我必须实现一个付费的exchange api,这让我有点头疼。所以,我放弃了这个要求。