2009-07-03 9 views
7

Come rimuovere l'etichetta che viene allegata al TextArea che sto tentando di utilizzare con Django? Sto cercando di trovare QUALSIASI informazione su questo problema ma non riesco a trovare nulla relativo al mio problema. Questo è quello che sto facendo nel mio codice:Rimozione dell'etichetta dal widget TextArea di Django

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

Questo è il codice HTML che produce:

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

Che etichetta è non va bene e mi piacerebbe un modo per rimuoverlo. Tale codice è stato prodotto attraverso:

{{ form.as_p }} 

(ho tolto il tag di paragrafo, perché sono irrilevanti)

EDIT: ho aggiunto la parte di classe CommentForm per ulteriori chiarimenti.

Qualcuno ha qualche suggerimento?

risposta

8

Il Django documentation on customizing labels dice che potrebbe essere spento con auto_id argomento al modulo del costruttore:

f = ContactForm(auto_id=False) 
+0

nvm il mio commento precedente, l'ho cancellato, tuttavia questo non fa ancora nulla per me, sto forse inizializzandolo nel posto sbagliato? Lo sto facendo nella vista prima che la pagina sia renderizzata. – AlbertoPL

+0

Io non sono davvero sicuro, ma penso che si potrebbe mettere in questo modo: classe CommentForm (FORMATI.FORM): auto_id = False comment = forms.CharField (widget di = forms.Textarea()) –

+0

Ok, sembra come questo dovrebbe essere il modo per farlo, ma non sto cambiando. Aggiornerò la domanda con più risultati – AlbertoPL

23

Questo dovrebbe funzionare con l'ultima versione (tronco) di django:

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

Speranza che aiuta!

+0

Purtroppo sto usando Django 1.0.2, e credo che questo non accada a lavorare ancora. – AlbertoPL

+0

È strano. Non dovrebbe essere una funzione di Django 1.1 (non potrei facilmente verificare che funzioni in Django 1.0.2). – lemonad

+0

'

0

Una soluzione rapida-and-dirty sarebbe per scorrere il modulo manualy (con {% per il campo in forma% }) e gestiscono appositamente il campo "problematico". È anche possibile sovrascrivere i metodi as_p/as_table se necessario.

0

Prova questo nel modulo:

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

Ma per le versioni più recenti di Django preferisco la risposta di Iemonad

Problemi correlati