如何修改Django Crispy Forms字段名称?将Content改为Body
解决方法
你要改的字段标签(Content* → Body)不是在模板文件里直接修改的,而是来自你的Django表单类或者模型定义,按下面步骤操作:
找到对应的表单/模型文件:你的项目里应该有
forms.py或者models.py(通常在blog应用目录下),里面定义了和这个发布表单相关的类(比如PostForm或者Post模型)。修改字段标签的两种方式:
- 直接修改模型字段:如果用的是ModelForm,打开
models.py,找到content字段,添加verbose_name参数:content = models.TextField(verbose_name="Body") - 在表单类里重写标签:打开
forms.py,在表单的Meta类里指定labels字典:from django import forms from .models import Post class PostForm(forms.ModelForm): class Meta: model = Post fields = ['title', 'content'] labels = { 'content': 'Body' # 这里把Content改成Body }
- 直接修改模型字段:如果用的是ModelForm,打开
为什么找不到对应模板文件:Django Crispy Forms是根据你的表单定义动态渲染字段标签的,默认不会生成单独的模板文件,所以直接改模板里的
{{ form|crispy }}没用,得从源头的表单/模型配置入手。
修改完后重启开发服务器,刷新页面就能看到字段标签变成Body了。
内容的提问来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

