'forms.ContactForm Objekt' hat kein Attribut 'hidden_tag'

9

Ich versuche, ein Kontaktformular zu erstellen, indem ich flask benutze, bekomme aber diesen Fehler, wenn die Seite gerendert wird.

%Vor%

Hier sind meine Dateien:

contact.html

%Vor%

forms.py

%Vor%

routes.py

%Vor%

Alle anderen Seitenvorlagen funktionieren einwandfrei. Jeder Rat wäre großartig! Danke für die Hilfe!

    
Richard Bustos 26.10.2013, 21:39
quelle

4 Antworten

-2

Der Fehler, den Sie sehen, sagt Ihnen, dass forms.ContactForm keine Methode namens "hidden_tag" hat. Sie verweisen auf diese Methode in der 6. Zeile von contact.html wie folgt:

%Vor%

Gemäß der Flaschendokumentation ist dies die richtige Methode zum Implementieren von CSRF-Schutz .

Ich würde beginnen, indem Sie die Zeile entfernen, die "form.hidden_tag ()" referenziert, dann sehen Sie, ob Ihr Formular funktioniert. Gehen Sie dann zurück und implementieren Sie den CSRF-Schutz anhand dieser Anweisungen aus der Dokumentation.

    
jcaveman 27.10.2013, 00:44
quelle
31

Ich habe gerade auch dieses Problem behoben.

Ihr Problem besteht darin, dass Sie Form zweimal importiert haben, wodurch Ihr flask-wtf Form Import nutzlos wurde.

%Vor%

Nur die Erweiterung flaschen-wtf hat die spezielle Klasse Form , die CSRF automatisch / anders behandeln kann.

    
Yuji 'Tomita' Tomita 13.12.2013 22:34
quelle
1

Es hat einige Zeit gedauert, das zu beheben.

Zuerst importieren Formular, Felder, Bootstrap als:

%Vor%

Config geheimer Schlüssel und Bootstrap

%Vor%

Erstellen Sie Ihr Formular wie gewohnt:

%Vor%

Nichts Besonderes auch im Routing, gib es einfach normal zurück.

Im HTML:

%Vor%

Und das ist es. Hoffe, Sie finden einige (oder alle) davon nützlich.

    
Daniel 03.08.2016 14:59
quelle
-1
Ich habe versucht, das auch zu beheben. Nach dem Entfernen von Klammern "()" nach hidden_tag angefügt, funktioniert es.

{{ form.hidden_tag }}

    
Sean Chen 05.05.2015 10:12
quelle

Tags und Links