我的表单中有一个十进制字段。
输入显示如下值:60.00
我希望它显示:60
我试过了:
{% load humanize %}
{{ form.amount|floatformat }}
我也尝试将表单字段更改为整数:
class AmountInfoForm(forms.ModelForm):
amount = forms.IntegerField()
class Meta:
model = Customer
fields = ('amount',)
这会导致该字段消失。
我做错了什么?
答案 0 :(得分:0)
我恐怕我看到你将floatformat应用于输入元素而不是有效的数值。因此,它无法显示,因此Django更喜欢不显示任何内容。
您可以尝试这种解决方法:
首先,请尝试以这种方式打印表单:
{{ form.as_table }}
如果查看源代码,您可以看到,例如,以这种方式显示名为 name 的字段的输入:
<input id="id_name" name="name" maxlength="25">
因此,您可以在django模板中执行以下操作来模拟此行为:
<input id="id_{{form.amount.label}}" name="{{form.amount.label}}" maxlength="25" value={{form.amount.value|floatformat:0}}>
总的来说,秘诀是将floatfomat应用于 form.amount.value 而不是 form.amount 。
希望它适合你!