2009-07-03 19 views
7

¿Cómo elimino la etiqueta que viene adjuntada al TextArea que intento usar con Django? Intento encontrar CUALQUIER información sobre este problema, pero parece que no puedo encontrar nada relacionado con mi problema. Esto es lo que estoy haciendo en mi código:Cómo quitar la etiqueta del widget de texto de Django

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

Este es el código HTML que se produce:

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

Esa etiqueta no es bueno y me gustaría una manera de quitarlo. Ese código se produce a través de:

{{ form.as_p }} 

(que eliminan las etiquetas de párrafo, ya que son irrelevantes)

EDIT: He añadido la parte CommentForm clase para una mayor clarificación.

¿Alguien tiene alguna sugerencia?

Respuesta

8

El Django documentation on customizing labels dice que podría ser desactivada con auto_id argumento al constructor del formulario:

f = ContactForm(auto_id=False) 
+0

nvm mi comentario anterior, lo eliminé, sin embargo, esto todavía no hace nada por mí, ¿estoy posiblemente inicializándolo en el lugar equivocado? Lo estoy haciendo en la vista antes de que se muestre la página. – AlbertoPL

+0

No estoy realmente seguro, pero supongo que se podría ponerlo de esta manera: clase CommentForm (forms.Form): auto_id = False comentario = forms.CharField (Widget = forms.Textarea()) –

+0

Ok, parece de esta manera DEBERÍA ser la forma de hacerlo, sin embargo, no estoy obteniendo ningún cambio. Actualizaré la pregunta con más resultados. – AlbertoPL

23

Esto debería funcionar con la versión más reciente (tronco) de Django:

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

Espero que ayude!

+0

Desafortunadamente estoy usando Django 1.0.2, y creo que esto no sucede a trabajar todavía. – AlbertoPL

+0

Eso es raro. No debería ser una característica de Django 1.1 (simplemente no pude verificar que funciona en Django 1.0.2). – lemonad

+0

'

0

Una solución rápida y sucia-sería iterar a través de la forma manualy (con {% para el campo en forma de% }) y maneja el campo "problemático" especialmente. También puede anular los métodos as_p/as_table si es necesario.

0

Pruebe esto en su formulario:

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

Pero hay nuevas versiones de Django prefiero la respuesta de Iemonad

Cuestiones relacionadas