将Django的intcomma字符串转换为Decimal

时间:2017-02-20 17:14:55

标签: python django

我正在尝试使用 state.Context.UserData.TryGetValue<string>("Name", out userName); state.Name = userName; 从数据库导出某些记录,但在导出时,Django字段的类型表示为amount而不是string

  

我的代码

decimal
  

模型

from django.contrib.humanize.templatetags.humanize import intcomma
import django_excel as excel


def download(request):
    records = []
    now = datetime.datetime.now()

    for reservation in Reservation.objects.sifted(request):
        record['Amount (EUR)'] = intcomma(reservation.amount)
        records.append(record)

    return excel.make_response_from_records(
        records,
        'xls',
        file_name="export_reservations_{}".format(now.strftime('%d_%m_%Y').replace(".",","))
    )

这会生成像amount = DecimalField(max_digits=6, decimal_places=2, null=True, default="0.00", verbose_name='Amount') 这样的格式,但它是正确的格式。

如果我12.12,我会得到十进制类型,但格式为Decimal(intcomma(reservation.amount)),并带有浮点数。

如何在导出中以正确的格式(xx.xx)获取小数?

1 个答案:

答案 0 :(得分:1)

它真的需要是小数吗?为什么不呢:

record['Amount (EUR)'] = round(reservation.amount, 2)