当用户输入值时,如何在表单字段django中自动格式化数字

时间:2016-07-06 06:13:56

标签: python django

我在form.py中有一个Decimal字段,如下所示: `

quantity = forms.DecimalField(required=True, widget=forms.NumberInput(
    attrs={'class': 'form-control item-quantity', 'style': 'text-align: right'}),
    error_messages={'required': 'This field is required.'}, localize=True) 

在HTML中,我有: `

{{ formset_item.management_form }}
{% for form in formset_item.forms %}
 <tr class="gradeX">
     <td>{{ form.quantity }}</td>
 </tr>
{% endfor %}

现在我想输入此数量input的数字。例如:当我输入输入(看起来像按键事件)1000000进入此输入intext时,它将自动格式化为1,000,000,用户请参见不插入数据库

3 个答案:

答案 0 :(得分:0)

total=100000
print ("Total cost is: ${:,.2f}".format(total)
  

首先你在字符串中转换你的o / p然后在数据库中存储后试试....

对不起我的坏英语:)

答案 1 :(得分:0)

我不确定我是否理解你的要求,但我认为我有其要点:

  1. 用户可以以表格(数字)输入数据,该表格将作为整数
  2. 保存到数据库中
  3. 当数据接下来呈现给用户(用于编辑?)时,它将用逗号(1,000 | 100,000 | 87,654,321)格式化,然后可以编辑?
  4. 您可能希望或可能不希望系统将输入的数字转换为逗号分隔
  5. 对于1号和1号2,何时从数据库中取出并更新数据库,您可以在需要时使用辅助函数简单地将数字转换为字符串和从字符串转换数字: How to print number with commas as thousands separators? How do I use Python to convert a string to a number if it has commas in it as thousands separators?

    如果您希望它实时发生,您将需要Javascript。我可能只有一个onfocus监听器,它将基于逗号的数字转换为常规的int形式,然后onblur它会将它转换回逗号格式的数字(你可能需要一些额外的监听器来处理边缘情况?)。

    编辑:如果你想要一个更简单的方法,我不熟悉它,但似乎这对你有帮助 Format numbers in django templates

答案 2 :(得分:0)

除了上述格式本地化注释外,您还可以在模板中按如下方式格式化数字。

<!DOCTYPE html>
{% load humanize %}

{% for post in posts %}
Views : {{ post.views|intcomma }}
{% endfor %}