如何覆盖表单的默认值?

时间:2010-07-30 02:45:26

标签: django override default

有人可以帮助我吗?

我的表单如下:

class RecieveLineForm(forms.ModelForm):
    purchaseorderline = forms.IntegerField(widget=forms.HiddenInput())
    rl_quantity = forms.IntegerField(label='Quantity')
    class Meta:
        model = RecieveLine

现在,我需要为我的purchaseorderline设置一个默认值,最初是一个ModelChoice,但是我将它重写为IntegerField,因为我打算隐藏它,这样每当我得到它的数据时,它都会返回一个整数,而不是一个东西。无论如何,我需要知道如何覆盖它的默认值。我必须使用__init__吗?我的问题是,我不知道如何在设置后覆盖默认值。有什么建议? ž

1 个答案:

答案 0 :(得分:3)

您应该能够使用inital参数在声明中设置它:

class RecieveLineForm(forms.ModelForm):
    purchaseorderline = forms.IntegerField(widget=forms.HiddenInput(), initial=37)

如果您需要动态创建,请在视图中创建表单时将其作为字典提供:

initial_values = {'purchaseorderline': 37}
form = ReceiverLineForm(initial=initial_values)