如何添加help_text以显示为输入值?

时间:2014-04-29 01:17:45

标签: python django

我想在我的表单类中声明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 }}">

我觉得那里有更好的方法吗?

2 个答案:

答案 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}), }