Ho un campo in uno dei miei modelli come la seguente:Come modificare empty_label per il campo di scelta modelForm?
payrollProvider = models.CharField(max_length=2, choices=PAYROLL_CHOICES)
PAYROLL_CHOICES = (
('C1', 'Choice1'),
('C2', 'Choice2')
etc.....
)
Quando creo un modulo standard per questo campo, Django genera correttamente un select box HTML, ma include un valore vuoto di default "- -------".
Vorrei sapere come modificare questo valore predefinito in un altro testo, ad esempio "scegliere il valore".
credo che dovrei essere in grado di impostare questo in init di mia forma modello tramite il seguente, come documentato in this answer e molti altri:
self.fields['payrollProvider'].empty_label = "please choose value"
Tuttavia, questo non funziona per me. Quando includo quella linea nel init del mio modulo, "--------" appare ancora come scelta iniziale nella casella di selezione. Sto incollando la relativa forma.py sotto, ma sembra che altri abbiano also been unable to access/modify empty_label. A questo link, l'interrogante descrive un modo per eliminare il valore predefinito empty_label (che ero in grado di fare con successo attraverso il suo metodo) ma quello che voglio veramente fare è modificare the empty_label che viene visualizzato.
Qualche idea?
Ecco il codice per il modulo in forms.py, con il codice empty_label che non è riuscita a cambiare il valore di default "----------":
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(),
}
Grazie ! Molto apprezzato. – CQP