Djangoドキュメントでは、ModelFormモデルマップでラベルのカスタマイズを使用する方法について説明しています: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/ 。しかし、それをフォローしようとすると、エラーが発生します。
name '_' is not defined.
私は何が間違っているのですか?
また、括弧の前に_
記号が必要なのはなぜですか?
これが私のコードです:
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"),
}
以下をインポートしましたか?
from Django.utils.translation import ugettext_lazy as _
ugettext
、ugettext_lazy
は、翻訳文字列を指定するために使用されます。 _
は入力を保存するために使用されます。
翻訳| Djangoドキュメント を参照してください。
現時点で他の誰かがそれを探している場合(2016-Django 1.9)
それは私にとってこのように機能します:
labels = {
"title": "Rule Title",
"other_field": "Other Title"
}
怠惰なインポートなし。
Django 1.6で、 'GregoryR'と同じ問題があります。_ugettext_lazyを_としてインポートしようとしませんでした。代わりに、これを簡単な方法で行いました(最後の行)。
def __init__(self, *args, **kwargs):
super(ModelForm, self).__init__(*args, **kwargs)
self.css_class = "rule"
self.fields['title'].label = 'Rule Title' <-----