Django在验证之前为模型表单赋值

时间:2015-04-28 02:27:27

标签: django forms validation

我准备了一个Django模型表格,供用户输入信息。我想制作一些字段,例如,文件编号,如果用户不输入,将自动生成。

但是,在view方法中,我无法在验证之前更改字段内容。 Model中的字段是必填字段,因此如果字段留空,则Form.is_valid()将返回False。

所以我想在表单验证之前为字段赋值但是失败了。现在我需要在表单提交给view方法之前将值分配给表单字段。

在验证之前是否可以为模型表单赋值?我不想将字段更改为可选字段,因为它是关键字段,我不希望它意外地留空。

以下是我的模型和模型表格的示例:

class Example(models.Model):
    doc_no = models.CharField(max_length = 10)
    .
    .
    .

class ExampleForm(forms.ModelForm):
    class Meta:
        model: Example
        fields: ['doc_no', ...]
        widgets = {
            'doc_no': forms.TextInput(attrs = {....}),
            .
            .
            .

谢谢,

1 个答案:

答案 0 :(得分:1)

你可以这样做:

class Example(models.Model): doc_no = models.CharField(max_length = 10, default='enter value here')

这会将默认值设置为default value here,但用户的响应(如果有)将覆盖默认值。

这有帮助吗?