WTForms html, автофокус?

Возможно ли, чтобы некоторые из новых атрибутов использовались только в HTML5 внутри WTForms?

Например, предположим, что вы хотите создать TextField с обязательным атрибутом placeholder="foo" и атрибутами autofocus. Как это сделать в WTForms?

В html это будет выглядеть так: <input maxlength="256" name="q" value="" placeholder="foo" autofocus required>

Обратите внимание, что placeholder="foo" легко сделать в WTForms. autofocus и required, поскольку они не имеют значения,... ну, насколько я видел, не поддерживаются в WTForms.

Может ли WTForms это поддерживать?


person Lee Olayvar    schedule 27.07.2010    source источник


Ответы (3)


Возможно, вам потребуется создать собственный виджет.

Ознакомьтесь с документами по пользовательским виджетам.

person a paid nerd    schedule 27.08.2010

В WTForms 1.0, выпущенном вчера, компактный синтаксис HTML5 теперь используется по умолчанию. Теперь вы можете сделать (в дзиндзя):

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

Обратите внимание, что в Jinja литерал true вместо True, но если вы попробуете это в консоли python, вам нужно будет использовать литерал python True, чтобы это работало.

В WTForms 0.6.x, который использовал XHTML в качестве вывода по умолчанию, вы могли бы сделать, например.

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

Это рекомендуемый способ представления логических атрибутов в XHTML, и он по-прежнему на 100% действителен в HTML5 и полностью эквивалентен, хотя сгенерированный HTML немного более подробный.

person Crast    schedule 01.03.2012

Я новичок в WTForms, но мне кажется, что решение можно улучшить вместо использования:

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

использовать :

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

WTForms, похоже, неправильно обрабатывает required=false для 100% HTML5 и устанавливает в HTML атрибут required="False" вместо удаления атрибута. Можно ли это улучшить в следующей версии WTForms?

person Frank    schedule 19.04.2012
comment
Патч, исправляющий поведение attr=false, только что был добавлен в 2.0dev: github. com/wtforms/wtforms/pull/17#issuecomment-28162938 - person thpani; 11.11.2013