Ich habe ein Feld in einem meiner Modelle wie folgt aus:Wie ändert man die leere_Label für das ModelForm-Auswahlfeld?
payrollProvider = models.CharField(max_length=2, choices=PAYROLL_CHOICES)
PAYROLL_CHOICES = (
('C1', 'Choice1'),
('C2', 'Choice2')
etc.....
)
Wenn ich ein Modell für diesen Bereich erstellen, Django erzeugt korrekt ein HTML-Select-Box, enthält aber einen leeren Standardwert „- ------- ".
Ich würde gerne wissen, wie Sie diesen Standardwert auf einen anderen Text, wie "Bitte wählen Sie Wert" ändern.
Ich glaube, ich sollte diese in der Lage sein zu setzen in meinem Modell init über das folgende Formular, wie in this answer und mehrere andere dokumentiert:
self.fields['payrollProvider'].empty_label = "please choose value"
Doch diese Arbeit ist nicht für mich. Wenn ich diese Zeile in das Formular init meines Formulars einfüge, erscheint "--------" immer noch als erste Wahl in der Auswahlbox. Ich füge die relevanten forms.py unten ein, aber es scheint, dass andere also been unable to access/modify empty_label haben. Unter diesem Link beschreibt der Fragesteller, einen Weg zu den Standard empty_label Wert löschen (was ich konnte erfolgreich über seine Methode tun), aber was ich wirklich will ist zu tun die empty_label ändern, die angezeigt wird.
Irgendwelche Ideen?
Hier ist der Code für das Formular in forms.py, mit dem empty_label-Code, der auf eine Änderung der Standardeinstellung "----------" nicht erfolgreich ist:
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(),
}
Dank ! Sehr geschätzt. – CQP