2010-07-27 10 views
8

¿Es posible tener algunos de los atributos nuevos atributos solo utilizados en HTML5, dentro de WTForms?WTForms ... html, autofocus?

Por ejemplo, supongamos que quiere crear un campo de texto con atributos de marcador de posición = "foo", obligatorios y de enfoque automático. ¿Cómo se haría esto en WTForms?

en HTML que se vería así: <input maxlength="256" name="q" value="" placeholder="foo" autofocus required>

Tenga en cuenta que placeholder="foo" es fácil de hacer en WTForms. autofocus y required, porque no tienen ningún valor, son ... bueno, por lo que he visto, no admitidos en WTForms.

¿Pueden los WTForms soportar esto?

Respuesta

22

En WTForms 1.0, lanzado ayer, la sintaxis compacta de HTML5 ahora es la predeterminada. Ahora se puede hacer (en Jinja):

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

Tenga en cuenta que en Jinja, el literal es true en lugar de True pero si se va a tratar esto en la consola de Python tendrá que utilizar la pitón literal True para este trabajar.

En WTForms 0.6.x, que usó XHTML como salida predeterminada, puede hacer, p.

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

Este es el método recomendado para la representación de los atributos booleanos en XHTML, y esto pasa a ser del 100% todavía HTML5 válido y completamente equivalentes, aunque el HTML generado es un poco más detallado.

3

Soy nuevo con WTForms pero me parece que la solución podría ser mejorado en vez de usar:

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

uso:

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

WTForms parece no manejar correctamente required=false para el 100 % HTML5 y establece en el HTML un attr required="False" en lugar de eliminar el attr. ¿Se podría mejorar esto en la próxima versión de WTForms?

+1

Un parche que arregla el comportamiento attr = false acaba de fusionarse en 2.0dev: https://github.com/wtforms/wtforms/pull/17#issuecomment-28162938 – thpani

Cuestiones relacionadas