Django 不在表单字段中显示默认值

Django don't display default value in form field

我有一个很大的 django 表单,其中大多数选项都具有相同的默认值。 当用户进入表单时,他们必须先删除默认值才能输入信息。

我想我可以通过添加一个占位符来解决这个问题

    widgets = {
    'form_item': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'OEM'})
}

现在,当我加载表单时,它仍然输入了默认值文本,但如果您将其删除,则会显示占位符文本。

如何在表单域中不显示默认值文本

一种方法是删除您在模型中设置的默认值。

然后在 forms.py 中将所需属性设置为 False

   widgets = {
    'form_item': forms.TextInput(attrs={'class': 'form-control', 'required': False})
}

在您的表格中,清洁时执行类似

的操作
def clean_<field_name>(self):
    value = self.cleaned_data[<field_name>]
    if not value:
       return 'OEM'
    ...whatever other cleaning you want
    return value

如果 Django 确实将空字符串插入为有效(跳过 if 块),那么只需

if value == '':
    ...run logic