【问题标题】:Django Assign Value To Model Form Before ValidateDjango 在验证之前为模型表单赋值
【发布时间】:2015-07-06 16:53:28
【问题描述】:

我准备了一个 Django 模型表单供用户输入信息。我想做一些字段,例如文档编号,如果用户不输入它会自动生成。

但是,在视图方法中,我无法在验证之前更改字段内容。 Model 中的字段是强制性的,因此如果该字段留空,Form.is_valid() 将返回 False。

所以我想在表单验证但失败之前为该字段分配一个值。现在我需要在输入表单提交给视图方法之前将值分配到表单字段中。

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

下面是我的模型和模型形式的例子:

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 = {....}),
            .
            .
            .

谢谢,

【问题讨论】:

    标签: django forms validation


    【解决方案1】:

    你可以这样做:

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

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

    这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 2017-06-14
      • 2012-05-02
      相关资源
      最近更新 更多