Как добавить атрибут, содержащий дефис в поле WTForms
Вызов объекта поля WTForms создает поле rendered, и любые аргументы принимаются как атрибуты, например.
form.field(attribute='value')
вернет что-то вроде
<input attribute='value'>
Как я могу добавить атрибуты пользовательских данных HTML5, такие как данные, которые содержат дефисы, что делает их невозможными в python как аргумент одного ключевого слова?
Ответы
Ответ 1
Создайте словарь с соответствующими парами ключ-значение и используйте ** для передачи его в полевой вызов:
attrs = {'data-provide': "foo"}
form.field(**attrs)
Изменить: Похоже, комментарий @NiklasB должен быть частью ответа:
Для тех, кто использует flask с flask-WTF, используйте: {{ form.field( **{'data-provide': 'foo'} ) }}
в вашем шаблоне.
Ответ 2
Не нужно использовать такой словарь в вызове функции form.field. ** распаковывает словарные элементы в именованные параметры для функции, поэтому просто добавьте параметры:
{{form.field(data-обеспечить = 'foo')}}
Но сделайте это ПОСЛЕ любых необходимых параметров для этого поля.
Другими словами, зачем распаковать словарь прямо там, когда вы можете просто добавить параметры?