我想在我的表单类中声明help_text,以在里面呈现HTML表单元素,而不是Django的默认值,它将它显示为一个单独的元素。具体来说,对于textarea字段,help_text需要在开始和结束HTML标记之间进行,对于输入字段,help_text需要设置为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">
原样,第一个代码块不会在任何地方插入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 }}">
我觉得那里有更好的方法吗?
答案 0 :(得分:0)
不使用help_text
,而是使用placeholder
属性。
text = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Some help text'}))
答案 1 :(得分:0)
这个答案可能为时已晚...但是对于其他可能需要的人。
例如,如果您有一个模型字段名称job_summary,则可以在表格中执行此操作。py:
class JobForm(forms.Form):
model = Job
...
class Meta:
widgets = {'job_summary', forms.Textarea(attrs={'placeholder': Job._meta.get_field('job_summary').help_text}), }