从Django的文本区域小部件中移除标签

17 投票
6 回答
25344 浏览
提问于 2025-04-15 12:40

我想知道如何去掉和我在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部分以便更清楚。

有没有人有建议呢?

6 个回答

4

在你的表单中试试这个:

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

不过对于更新版本的Django,我更喜欢Iemonad的回答。

36

这段代码应该可以在最新版本的Django(开发版)上正常运行:

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

希望这对你有帮助!

10

Django的官方文档提到,关于自定义标签的内容,可以通过在表单构造函数中使用auto_id这个参数来关闭这个功能:

f = ContactForm(auto_id=False)

撰写回答