【问题标题】:How to auto format numbers in form field django when user input value用户输入值时如何在表单字段django中自动格式化数字
【发布时间】:2016-11-08 02:40:32
【问题描述】:

我在 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 时,它将自动格式化为 1,000,000,以便用户看到不插入数据库

【问题讨论】:

标签: python django


【解决方案1】:
total=100000
print ("Total cost is: ${:,.2f}".format(total)

首先你将你的 o/p 转换成字符串,然后在存储到数据库后尝试它......

大声笑..对不起我的英语不好:)

【讨论】:

    【解决方案2】:

    我不确定我是否正确理解了您的要求,但我想我已经掌握了要点:

    1. 用户可以输入形式(数字)中的数据,该形式将作为整数保存到数据库中
    2. 下次将数据呈现给用户(用于编辑?)时,它将使用逗号 (1,000 | 100,000 | 87,654,321) 进行格式化,然后可以对其进行编辑?
    3. 您可能希望或不希望系统即时将输入的数字转换为逗号分隔

    对于数字 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

    【讨论】:

      【解决方案3】:

      除了上述格式本地化注释外,在模板中您还可以对数字进行如下格式设置。

      <!DOCTYPE html>
      {% load humanize %}
      
      {% for post in posts %}
      Views : {{ post.views|intcomma }}
      {% endfor %}
      

      【讨论】:

      • 我已经尝试过这样但它在html输出中显示post.views
      • 您是否在 settings.py INSTALLED_APPS 中插入了“django.contrib.humanize”?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2018-10-27
      相关资源
      最近更新 更多