【发布时间】:2021-03-31 16:50:31
【问题描述】:
我必须在我的 Django 项目中进行货币之间的转换。这个应用程序有多个客户,每个客户都有credit_limit 字段。每个客户的信用额度金额可以是不同的货币,我必须将它们全部转换为美元。因为我有一个仪表板页面,并且我显示了一些图表,这些图表可以对这些货币进行操作,例如添加等...
我使用了django-money 并且工作正常,但它返回Money 字段并且我无法在图表中显示它,因为它不是浮点或整数字段。
如何转换我的货币并返回浮点值的整数? 感谢您的帮助。
这是我的代码:
views.py
def customer(request):
form_class = NewCustomerForm
current_user = request.user
userP = UserProfile.objects.get_or_create(username=current_user)
company = userP[0].company
if request.method == 'POST':
form = NewCustomerForm(request.POST)
if form.is_valid():
newCustomer = form.save()
newCustomer.company = company
selected_currency = newCustomer.currency_choice
selected_limit = newCustomer.credit_limit
newCustomer.usd_credit_limit = convert_money(Money(selected_limit, selected_currency), 'USD')
newCustomer.save()
return redirect('user:customer_list')
else:
form = form_class()
return render(request, 'customer.html', {'form': form})
models.py
class Customer(models.Model):
...
CURRENCIES = [
('USD', 'USD'),
('EUR', 'EUR'),
('GBP', 'GBP'),
]
currency_choice = models.TextField(max_length=50, default='Select', choices=CURRENCIES)
credit_limit = models.FloatField(default=0, null=True)
usd_credit_limit = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', null=True, default=0)
risk_rating = models.CharField(max_length=50, default='Select', choices=RISK_RATING, null=True)
【问题讨论】:
-
你试过直接类型转换吗?
-
我该怎么做?我试过 float(newCustomer.usd_credit_limit) 但没用。