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

Posted

技术标签:

【中文标题】从 Django 的 TextArea 小部件中删除标签【英文标题】:Removing the Label From Django's TextArea Widget 【发布时间】:2010-11-08 00:22:03 【问题描述】:

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

大家有什么建议吗?

【问题讨论】:

【参考方案1】:

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

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

希望有帮助!

【讨论】:

不幸的是,我使用的是 Django 1.0.2,我想这还不能正常工作。 这很奇怪。它不应该是 Django 1.1 的功能(我只是无法轻松验证它在 Django 1.0.2 中是否有效)。 &lt;label&gt; 仍然存在,只是空的。 (警告:kludge 传入)完全隐藏它,我也 added a css file to my ModelAdmin 其中包括 label:empty display: none; 【参考方案2】:

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

f = ContactForm(auto_id=False)

【讨论】:

nvm 我之前的评论,我删除了它,但是这对我仍然没有任何作用,我可能在错误的位置初始化它吗?我是在页面渲染之前在视图中做的。 我不太确定,但我想你可以这样说:class CommentForm(forms.Form): auto_id = False comment = forms.CharField(widget=forms.Textarea())跨度> 好的,看起来这应该是这样做的方法,但是我没有得到任何改变。我会用更多结果更新问题。 确实如此。标签没了。但是,标签的文本部分确实是我想要删除的。不过,这是我提出的问题的正确答案。【参考方案3】:

在你的表单中试试这个:

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

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

% for field in form % field.errors % endfor %

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于从 Django 的 TextArea 小部件中删除标签的主要内容,如果未能解决你的问题,请参考以下文章

将ckeditor应用于textarea

姜戈。 TemplateDoesNotExist 在自定义小部件的情况下

Dojo Validation TextArea 小部件在无效时如何突出显示?

如何从 Django 模板变量填充 jQuery Datepicker 小部件?

Django 2.0 ModelForm dateField 不显示为小部件

如何在 Django 中使用复选框小部件从 MultipleChoiceField 保存数据