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

问题描述 投票:9回答:5

如何删除我要与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部分以进一步说明。

有人有什么建议吗?

python django textarea label widget
5个回答
9
投票

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

f = ContactForm(auto_id=False)

26
投票

这应该与django的最新版本(trunk)一起使用:

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

希望有帮助!


3
投票

以您的形式尝试:

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

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


0
投票

快速而又肮脏的解决方案是手动遍历表单(使用{%表示表单%的字段})并专门处理“问题”字段。如果需要,您还可以覆盖as_p / as_table方法。


0
投票

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

class CustomForm(forms.Form):
    class Meta:
        ...  #other properties such as model, fields, widgets and help text
        labels = {
           'comment' : '',
        }
© www.soinside.com 2019 - 2024. All rights reserved.