У меня есть поле в одной из моих моделей, например:
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, "--------" по-прежнему отображается как исходный выбор в поле выбора. Я вставляю соответствующие формы .py ниже, но, похоже, другим также не удалось получить доступ/изменить пустую_клавишу. По этой ссылке, вопросник описывает способ удаления значения по умолчанию 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(),
}