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"),
}
答案 0 :(得分:13)
如果其他人正在寻找它 (2016 - Django 1.9)
对我来说就像这样:
labels = {
"title": "Rule Title",
"other_field": "Other Title"
}
没有懒惰导入。
答案 1 :(得分:9)
您是否导入了以下内容?
from django.utils.translation import ugettext_lazy as _
ugettext
,ugettext_lazy
用于指定翻译字符串。 _
用于保存打字。
答案 2 :(得分:1)
我有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' <-----