2009-07-03 10 views
7

Wie entferne ich die Beschriftung, die an die TextArea angehängt ist, die ich mit Django verwenden möchte? Ich versuche, Informationen über dieses Problem zu finden, aber ich kann anscheinend nichts zu meinem Problem finden. Das ist, was ich in meinem Code tun:Entfernen des Labels aus Djangos Widget "TextArea"

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

Dies ist die HTML, die es produziert:

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

Das Label ist nicht gut, und ich würde einen Weg, um es entfernen möchten. Dieser Code wurde über produziert:

{{ form.as_p }} 

(ich den Absatz-Tags entfernt, weil sie irrelevant sind)

EDIT: Ich habe die Klasse Kommentarformular Teil zur weiteren Klärung.

Hat jemand irgendwelche Vorschläge?

Antwort

8

Die Django documentation on customizing labels sagt es mit auto_id Argumente ausgeschaltet werden könnte, um Formularkonstruktor:

f = ContactForm(auto_id=False) 
+0

nvm mein vorheriger Kommentar, ich löschte es, aber das tut immer noch nichts für mich, bin ich möglicherweise es an der falschen Stelle initialisieren? Ich mache es in der Ansicht, bevor die Seite gerendert wird. – AlbertoPL

+0

Ich bin nicht wirklich sicher, aber ich denke, man es so sagen könnte: Klasse Kommentarformular (forms.Form): auto_id = False comment = (= forms.Textarea() widget) forms.CharField –

+0

Ok, es sieht So sollte es sein, aber ich bekomme keine Veränderung. Ich werde die Frage mit mehr Ergebnissen aktualisieren. – AlbertoPL

23

Dies sollte mit der neuesten Version (Stamm) von django arbeiten:

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

Hoffnung, das hilft!

+0

Leider verwende ich Django 1.0.2, und ich denke, dies nicht funktionieren passieren noch. – AlbertoPL

+0

Das ist komisch. Es sollte kein Django 1.1-Feature sein (ich konnte einfach nicht überprüfen, ob es in Django 1.0.2 funktioniert). – lemonad

+0

'

0

A quick-and-dirty-Lösung durch die Form manualy laufen sei (mit {% für das Feld in Form% }) und behandeln Sie speziell das "problematische" Feld. Sie können die as_p/as_table-Methoden bei Bedarf auch überschreiben.

0

Versuchen Sie dies in Ihrer Form:

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

Aber für neuere Versionen von django bevorzugen i Iemonad Antwort

Verwandte Themen