如何使用django-money获得没有“$”的货币值?

3bygqnnd  于 2023-02-10  发布在  Go
关注(0)|答案(2)|浏览(358)

我使用django-money,然后在Product模型中使用MoneyField()创建price字段,如下所示:

# "app/models.py"

from django.db import models
from djmoney.models.fields import MoneyField
from decimal import Decimal
from djmoney.models.validators import MaxMoneyValidator, MinMoneyValidator

class Product(models.Model):
    name = models.CharField(max_length=100)
    price = MoneyField( # Here
        max_digits=5, decimal_places=2, default=0, default_currency='USD',
        validators=[
            MinMoneyValidator(Decimal(0.00)), MaxMoneyValidator(Decimal(999.99)),
        ]
    )

然后,当得到views.py中的价格时,如下所示:

# "app/views.py"

from app.models import Product
from django.http import HttpResponse

def test(request):
    print(Product.objects.all()[0].price) # Here
    return HttpResponse("Test")

我得到的价格与$上的控制台如下所示:

$12.54

现在,如果没有$,我如何获得价格,如下所示?

12.54
q0qdq0h2

q0qdq0h21#

我们正在处理一个Money对象(see here),该对象有一个amount属性,它将为您提供小数数量:

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

如果需要,您可以将其转换为int

lp0sw83n

lp0sw83n2#

您可以使用.amount来获取价格,而不使用$

# Here
Product.objects.all()[0].price.amount

然后,您可以在控制台上获得没有$的价格,如下所示:

12.54

相关问题