我想为我的modelform中的标签创建一个自定义名称,这是我的forms.py
class PostForm(forms.ModelForm):
body = forms.CharField(widget=PagedownWidget)
publish = forms.DateField(
widget=forms.SelectDateWidget,
initial=datetime.date.today,
)
class Meta:
model = Post
fields = [
"title",
"body",
"author",
"image",
"image_url",
"video_path",
"video",
"publish",
"tags",
"status"
]
Run Code Online (Sandbox Code Playgroud)
我想改变而不是视频我希望它说嵌入.我检查了文档,但没有找到任何可以帮助我做到这一点.是不是我不得不重新安排我的模型?如果是这样的话?谢谢
sol*_*oke 43
从文档:
如果要进一步自定义字段,可以指定内部Meta类的标签,help_texts和error_messages属性.
在文档的该部分下面有一些示例.所以,你可以这样做:
class Meta:
model = Post
labels = {
"video": "Embed"
}
Run Code Online (Sandbox Code Playgroud)
Sel*_*cuk 14
是的,你可以.只需使用label
参数:
class PostForm(forms.ModelForm):
...
video = forms.FileField(label='embed')
Run Code Online (Sandbox Code Playgroud)
或者在你的Meta
课程中定义它:
class PostForm(forms.ModelForm):
...
class Meta:
...
labels = {
"video": "embed"
...
}
Run Code Online (Sandbox Code Playgroud)
小智 7
class Meta:\n\n model = Book\n fields = ('title', 'publication_date', 'author', 'price', 'pages','book_type',)\n labels = {\n 'title':'Titulo', \n 'publication_date':'Data de Publica\xc3\xa7\xc3\xa3o', \n 'author':'Autor', \n 'price':'Pre\xc3\xa7o', \n 'pages':'N\xc3\xbamero de P\xc3\xa1ginas',\n 'book_type':'Formato'\n }\n widgets = {\n 'title': forms.TextInput(attrs={'class':'form-control'}),\n 'publication_date': forms.TextInput(attrs={'class':'form-control'}),\n 'author': forms.TextInput(attrs={'class':'form-control'}),\n 'price': forms.TextInput(attrs={'class':'form-control'}),\n 'pages': forms.TextInput(attrs={'class':'form-control'}),\n 'book_type': forms.TextInput(attrs={'class':'form-control'}),\n } \n
Run Code Online (Sandbox Code Playgroud)\n
在不编辑表单的情况下实现此目的的一种简单方法是更改verbose_name
模型上的 。对于video
模型上的字段,您可以将表单上的标签从“视频”更改为“嵌入”,如下所示:
class Post(models.Model)
video = models.UrlField(verbose_name="embed")
# Other fields
Run Code Online (Sandbox Code Playgroud)