Die Django-Dokumentation erläutert, wie die Anpassung von Etiketten in einer ModelForm-Modellkarte hier verwendet wird: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/. Allerdings, wenn ich versuche, es zu folgen erhalte ich die Fehlermeldung:Django ModelForm-Etikettenanpassung
name '_' is not defined.
Was mache ich falsch?
Auch warum sollte ein _
Symbol vor der Klammer sein?
Hier ist mein Code:
class RuleForm(ModelForm):
def __init__(self, *args, **kwargs):
super(ModelForm, self).__init__(*args, **kwargs)
self.css_class = "rule"
class Meta:
model = Rule
fields = ("user", "title")
exclude = ("user")
widgets = {
"title" : TextInput(attrs={"class" : "title"}),
}
labels = {
"title": _("Rule Title"),
}
Es wird die Fehlermeldung los, aber es zeigt immer noch den Standardtitel, anstatt den angegebenen Titel. In der Tat brauche ich hier keine Übersetzer, ich könnte nur tun: labels = {"title": "Rule Title",}, aber es gibt mir immer noch den Standardtitel und nicht "Rule Title". – jazzblue
@GregoryR, Vergewissern Sie sich, dass Sie Django 1.6+ verwenden. Die Option "Labels" wurde in Django 1.6 hinzugefügt. Siehe [Erstellen von Formularen aus Modellen | Django Dokumentation - Überschreibe die Standardfelder] (https://docs.djangoproject.com/de/1.6/topics/forms/modelforms/#overriding-the-default-fields) – falsetru
@GregoryR, BTW, 'super (ModelForm, self) .__ init __ (* args, ** kwargs) 'sollte' super sein (RuleForm, self) .__ init __ (* args, ** kwargs) '. 'exclude = (" user ")' -> 'exclude = (" user ",)' oder 'exclude = [" user "]'. – falsetru