2010-07-27 6 views
8

Ist es möglich, einige der neuen Attribute nur Attribute in HTML5, innerhalb von WTForms verwendet zu haben?WTForms ... html, Autofokus?

ZB sagen Sie, dass Sie ein TextField mit Platzhalter = "foo", erforderlichen und Autofokus-Attributen erstellen möchten. Wie würde das in WTForms gemacht?

In html würde es so aussehen: <input maxlength="256" name="q" value="" placeholder="foo" autofocus required>

Beachten Sie, dass placeholder="foo" leicht in WTForms getan. autofocus und required, weil sie keinen Wert haben, sind .. naja, soweit ich gesehen habe, in WTForms nicht unterstützt.

Können WTForms dies unterstützen?

Antwort

0

Sie müssen wahrscheinlich ein benutzerdefiniertes Widget erstellen.

Überprüfen Sie die docs on custom widgets.

22

In WTForms 1.0, gestern veröffentlicht, HTML5 kompakte Syntax ist jetzt die Standardeinstellung. Jetzt können Sie tun (in Jinja):

{{ form.field(autofocus=true, required=true, placeholder="foo") }} 

Beachten Sie, dass in Jinja, die wörtlichen true ist statt True aber wenn Sie sind dies in der Python-Konsole versuchen, werden Sie den Python wörtlichen True dafür verwenden müssen arbeiten.

In WTForms 0.6.x, die XHTML als Standardausgabe verwendeten, könnten Sie z.B.

{{ form.field(autofocus="autofocus", required="required", placeholder="foo" }} 

Dies ist die empfohlene Art und Weise Boolesche Attribute in XHTML für die Darstellung, und dies geschieht, nach wie vor 100% gültig HTML5 sein und vollständig äquivalent, obwohl die erzeugte HTML etwas ausführlich ist.

3

Ich bin neu mit WTForms aber es scheint mir, dass die Lösung anstelle der Verwendung verbessert werden könnte:

{{ form.field(autofocus=true, required=true, placeholder="foo") }} 

Verwendung:

{% if field.flags.required %} 
    {{ field(autofocus=true, required=field.flags.required, placeholder="foo") }} 
{% else %} 
    {{ field(autofocus=true, placeholder="foo") }} 
{% endif %} 

WTForms scheint nicht richtig required=false für 100 zu handhaben % HTML5 und setzt im HTML-Code eine Attr required="False" anstelle des Attr. Könnte dies in der nächsten Version von WTForms verbessert werden?

+1

Ein Patch, der das Attribut attr = false festlegt, wurde gerade in 2.0dev zusammengeführt: https://github.com/wtforms/wtforms/pull/17#issuecomment-28162938 – thpani