如何将help_text作为输入值显示?
我想在我的表单类中,把帮助文本(help_text)放到HTML表单元素里面,而不是像Django默认那样,把它显示为一个单独的元素。具体来说,对于文本区域(textarea)字段,帮助文本需要放在HTML标签的开头和结尾之间;而对于输入字段,帮助文本则需要作为value=
属性来设置。简单来说,就是把:
text = forms.CharField(widget=forms.Textarea(attrs={'class':'form-control', 'rows':2}), help_text="Some help text")
image = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control'}), help_text="More help text")
变成:
<textarea class="form-control" id="id_text" name="text" rows="2">Some help text</textarea>
<input class="form-control" id="id_image" name="image" value="More help text">
现在的代码块并没有把帮助文本放到任何地方。
一种方法是直接使用模板标签把所有内容放在一起,但这样感觉像是个临时解决办法。
<textarea class="form-control" id="{{ form.text.auto_id }}" name="{{ form.text.html_name }}" rows="2">{{ form.text.help_text }}</textarea>
<input class="form-control" id="{{ form.image.auto_id }}" name="{{ form.image.html_name }}" value="{{ form.image.help_text }}">
我觉得应该有更好的方法吧?
2 个回答
1
这个回答可能来得有点晚……不过对于其他可能需要的人来说,还是有帮助的。
比如说,如果你有一个模型字段叫做 job_summary,那么在你的 forms.py 文件中,你可以这样做:
class JobForm(forms.Form):
model = Job
...
class Meta:
widgets = {'job_summary', forms.Textarea(attrs={'placeholder': Job._meta.get_field('job_summary').help_text}), }
1
与其使用 help_text
,不如使用 placeholder
属性。
text = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Some help text'}))