Django文档解释了如何在ModelForm模型映射中使用标签自定义: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/。 然而,当我尝试跟随它,我得到的错误:Django ModelForm标签定制
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"),
}
它确实消除了错误信息,但仍显示默认标题,而不是我指定的标题。事实上,我不需要任何译员,我可能会这样做:labels = {“title”:“Rule Title”,}但它仍然给我默认的标题而不是“规则标题”。 – jazzblue
@GregoryR,确保你使用的是Django 1.6+。在Django 1.6中添加了'labels'选项。请参阅[从模型创建表格| Django文档 - 覆盖默认字段](https://docs.djangoproject.com/en/1.6/topics/forms/modelforms/#overriding-the-default-fields) – falsetru
@GregoryR,BTW,'super(ModelForm,self ).__ init __(* args,** kwargs)'应该是'super(RuleForm,self).__ init __(* args,** kwargs)'。 'exclude =(“user”)' - >'exclude =(“user”,)'或'exclude = [“user”]'。 – falsetru