views:

655

answers:

3

How do I remove the label that comes attached to the TextArea I am trying to use with Django? I'm trying to find ANY information about this issue but I cannot seem to find anything relating to my problem. This is what I'm doing in my code:

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

This is the HTML that it produces:

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

That label is no good and I'd like a way to remove it. That code was produced via:

{{ form.as_p }}

(I removed the paragraph tags because they are irrelevant)

EDIT: I added the class CommentForm part for further clarification.

Anyone have any suggestions?

+2  A: 

This should work with the latest version (trunk) of django:

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

Hope that helps!

lemonad
Unfortunately I'm using Django 1.0.2, and I guess this doesn't happen to work yet.
AlbertoPL
That's weird. It should not be a Django 1.1 feature (I just couldn't easily verify that it works in Django 1.0.2).
lemonad
+1  A: 

The Django documentation on customizing labels says it could be turned off with auto_id argument to Form constructor:

f = ContactForm(auto_id=False)
Grzegorz Oledzki
nvm my previous comment, I deleted it, however this still does nothing for me, am I possibly initializing it in the wrong spot? I'm doing it in the view before the page is rendered.
AlbertoPL
I am not really sure but I guess you could put it like this:class CommentForm(forms.Form): auto_id = False comment = forms.CharField(widget=forms.Textarea())
Grzegorz Oledzki
Ok, it looks like this SHOULD be the way to do it, however I'm getting no change. I'll update the question with more results.
AlbertoPL
So, did it work?
Grzegorz Oledzki
It did. The label is gone. However, the text part of the label was really what I wanted to remove. Nevertheless, this is the correct answer to my stated question.
AlbertoPL
A: 

A quick-and-dirty solution would be to iterate through the form manualy (with {% for field in form %}) and handle the "problematic" field specially. You could also override the as_p/as_table methods if needed.