16

如何删除附加到我尝试与 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 部分以进一步澄清。

有人有什么建议吗?

4

6 回答 6

35

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

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

希望有帮助!

于 2009-07-03T20:30:22.460 回答
10

关于自定义标签的Django 文档auto_id说它可以通过Form 构造函数的参数关闭:

f = ContactForm(auto_id=False)
于 2009-07-03T20:30:33.050 回答
4

在你的表单中试试这个:

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

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

于 2014-09-02T09:09:33.207 回答
2

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

class CustomForm(forms.Form):
    class Meta:
        ...  #other properties such as model, fields, widgets and help text
        labels = {
           'comment' : '',
        }
于 2020-05-20T03:29:21.300 回答
0

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

于 2009-07-03T20:55:07.060 回答
0

这是另一个对我有用的解决方案

{% for field in form %} {{field.errors}} {% endfor %}
于 2021-10-06T23:06:20.857 回答