舍入django输入字段使其消失

时间:2014-11-05 16:35:18

标签: django django-forms django-templates

我的表单中有一个十进制字段。

输入显示如下值:60.00

我希望它显示:60

我试过了:

{% load humanize %}
{{ form.amount|floatformat }}

我也尝试将表单字段更改为整数:

class AmountInfoForm(forms.ModelForm):

    amount = forms.IntegerField()

    class Meta:
        model = Customer
        fields = ('amount',)

这会导致该字段消失。

我做错了什么?

1 个答案:

答案 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

希望它适合你!