[英]How can I use Django intcomma in integerfield
我想在Django项目中用逗号分隔表格中的数值。 然后我找到了下面的文档:
https://docs.djangoproject.com/zh-CN/2.0/ref/contrib/humanize/
我以为我可以使用“逗号”。 因此,我在INSTALLED_APPS设置中添加了“ django.contrib.humanize”。 并将{%load humanize%}放在模板中。
当我使用如下所示的“ intcomma”时,它起作用了。
{{ 999999|intcomma }} # 999,999
但是它不适用于如下所示的整数形式:
{{ form.numbers|intcomma }} # did not work.
代码显示为html而不是像这样的数字:
<input type="number" name="int_sample" value="100000" id="id_int_sample"
我的Django版本是2.0.1。
IntegerField
的值 您使用.value
属性访问IntegerField
的值 ,因此:
{{ form.numbers.value|intcomma }}
请注意,这是在构造Form
时设置给Form
的值 。 例如,通过initial={..}
或与instance=...
相对应的值,您将传递到该字段。 例如,如果以形式更改值,则内容不会更改。
<input>
如果我们想让<input>
元素本身格式化以逗号分隔的数字,我们将需要一些HTML / JavaScript。 由于Django基本上只呈现网页。 网页在浏览器中的行为方式并不是Django真正的责任。
例如,我们可以使用以下方法:
<script language="JavaScript">
function commas(input){
input.value = Number(input.value).toLocaleString();
}
</script>
{{ form.numbers }}
然后, Form
应确保调用了commas
函数:
SomeForm(forms.Form):
numbers = forms.IntegerField(
widget=forms.TextInput(attrs={'onclick':'commas(self)'})
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.