如何覆盖表单的默认值?

Posted

技术标签:

【中文标题】如何覆盖表单的默认值?【英文标题】:How do I override a default value of a form? 【发布时间】:2010-07-30 02:45:26 【问题描述】:

有人可以帮我吗?

我的表单如下所示:

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

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

【问题讨论】:

【参考方案1】:

您应该可以在声明中使用初始参数进行设置:

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

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

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

【讨论】:

以上是关于如何覆盖表单的默认值?的主要内容,如果未能解决你的问题,请参考以下文章

如何将默认值覆盖为非默认值

如何防止在表单提交中传递空白UTM值?

如何使用 NSUserDefaults 注册用户默认值而不覆盖现有值?

如何覆盖 Grails 中的默认错误消息?

如何覆盖 TableView.rowDelegate 的某些属性,同时保持其他属性为默认值

如何在表单输入字段中为密码分配默认值?