我的一个模型中有一个字段,如下所示:
payrollProvider = models.CharField(max_length=2, choices=PAYROLL_CHOICES)
PAYROLL_CHOICES = (
('C1', 'Choice1'),
('C2', 'Choice2')
etc.....
)
当我为此字段创建模型表单时,Django 正确生成了一个 HTML 选择框,但包含一个默认的空白值“----------”。
我想知道如何将此默认值更改为其他文本,例如“请选择值”。
我相信我应该能够通过以下方式在我的模型表单的init中进行设置,如本答案和其他几个文件中所述:
self.fields['payrollProvider'].empty_label = "please choose value"
但是,这对我不起作用。当我在表单的init中包含该行时,“--------”仍然显示为选择框中的初始选项。我在下面粘贴相关的 forms.py ,但似乎其他人也无法访问/修改 empty_label。在这个链接上,提问者描述了一种删除默认 empty_label 值的方法(我能够通过他的方法成功地做到这一点),但我真正想做的是修改显示的 empty_label。
有任何想法吗?
这是 forms.py 中表单的代码,其中的 empty_label 代码无法成功更改默认“----------”:
class PayrollCredentialForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(PayrollCredentialForm, self).__init__(*args, **kwargs)
self.fields['payrollUsername'].widget.attrs.update({'class' : 'yp-signup'})
self.fields['payrollPassword'].widget.attrs.update({'class' : 'yp-signup'})
self.fields['payrollProvider'].widget.attrs.update({'class' : 'yp-signup'})
self.fields['payrollUsername'].widget.attrs.update({'placeholder' : ' Payroll Username'})
self.fields['payrollPassword'].widget.attrs.update({'placeholder' : ' Payroll Password'})
self.fields['payrollProvider'].empty_label = "please choose value"
class Meta:
model = Company
fields = ('payrollProvider', 'payrollUsername', 'payrollPassword')
widgets = {
'payrollPassword': forms.PasswordInput(),
}