如何强制django ModelForm使用模型中的`verbose_name`作为标签?

时间:2015-03-25 14:46:22

标签: django django-forms

代码段:

[models.py]

class News(models.Model):
    title = models.TextField(verbose_name=u"Tytuł")

[forms.py]

class NewsForm(forms.ModelForm):
    title = forms.CharField(
        widget=forms.TextInput(attrs={'class': 'form-input'}), required=True)
    class Meta:
        model = News
        fields = (
            'title',
        )

如何强制在表单中使用verbose_name而不是title

我想可以通过label=here_some_geeky_way_of_accessing_fields_meta_and_greping_verbose_name在每个字段中链接它,但我认为应该可以更简单的方式...

1 个答案:

答案 0 :(得分:3)

如果要覆盖该字段的默认小部件,则可以使用表单元的widgets属性:

class NewsForm(forms.ModelForm):

    class Meta:
        model =News
        fields = ('title', )
        widgets = {
            'title': forms.TextInput(attrs={'class': 'form-input'}),
        }

在这种情况下,您无需重新定义表单字段。 ModelForm将从模型定义中获取详细名称和required标志。