从Django的TextArea小部件中删除标签

时间:2009-07-03 19:57:55

标签: python django textarea label widget

如何删除附加到我尝试与Django一起使用的TextArea的标签?我正在尝试找到有关此问题的任何信息,但我似乎无法找到与我的问题有关的任何内容。这就是我在我的代码中所做的:

class CommentForm(forms.Form):
    comment = forms.CharField(widget=forms.Textarea())

这是它产生的HTML:

<label for="id_text">Text:</label> 
<textarea id="id_text" rows="10" cols="40" name="text"></textarea>

那个标签不好,我想要一种方法来删除它。该代码是通过以下方式生成的:

{{ form.as_p }}

(我删除了段落标签,因为它们无关紧要)

编辑:我添加了CommentForm类部分以进一步澄清。

有人有任何建议吗?

5 个答案:

答案 0 :(得分:24)

这应该适用于django的最新版本(主干):

comment = forms.CharField(label="", help_text="", widget=forms.Textarea())

希望有所帮助!

答案 1 :(得分:9)

Django documentation on customizing labels表示可以使用auto_id参数关闭Form构造函数:

f = ContactForm(auto_id=False)

答案 2 :(得分:1)

在表单中尝试:

def __init__(self, *args, **kwargs):
    self.fields['comment'].label = ''

但是对于较新版本的django,我更喜欢Iemonad的回答

答案 3 :(得分:0)

一个快速而肮脏的解决方案是手动迭代表单({%for field in form%})并专门处理“有问题”的字段。如果需要,您还可以覆盖as_p / as_table方法。

答案 4 :(得分:0)

不确定旧的Django,但是您现在可以在Meta中为新的Django清空表单字段标签

class CustomForm(forms.Form):
    class Meta:
        ...  #other properties such as model, fields, widgets and help text
        labels = {
           'comment' : '',
        }