如何强制 django ModelForm 使用模型中的“verbose_name”作为标签?
How to force django ModelForm to use `verbose_name` from the model as a label?
代码片段:
[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
在每个字段中 link 它,但我认为应该可以用更简单的方式实现...
如果您想覆盖该字段的默认小部件,那么您可以使用表单元数据的 widgets
属性:
class NewsForm(forms.ModelForm):
class Meta:
model =News
fields = ('title', )
widgets = {
'title': forms.TextInput(attrs={'class': 'form-input'}),
}
在这种情况下,您不需要重新定义表单域。 ModelForm
将从模型定义中获取详细名称和 required
标志。
代码片段:
[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
在每个字段中 link 它,但我认为应该可以用更简单的方式实现...
如果您想覆盖该字段的默认小部件,那么您可以使用表单元数据的 widgets
属性:
class NewsForm(forms.ModelForm):
class Meta:
model =News
fields = ('title', )
widgets = {
'title': forms.TextInput(attrs={'class': 'form-input'}),
}
在这种情况下,您不需要重新定义表单域。 ModelForm
将从模型定义中获取详细名称和 required
标志。