An open API service indexing awesome lists of open source software.

https://github.com/agdsn/wtforms-widgets

Decorator driven wtforms extension with Bootstrap 5 support
https://github.com/agdsn/wtforms-widgets

Last synced: 4 months ago
JSON representation

Decorator driven wtforms extension with Bootstrap 5 support

Awesome Lists containing this project

README

        

# wtforms-widgets
Decorator driven wtforms extension with Bootstrap 5 support for Flask

Copyright (c) The Pycroft Authors. See the [AUTHORS](https://github.com/agdsn/pycroft/blob/develop/AUTHORS) file.

Install with
```shell
pip install wtforms-widgets
```

Initialize your form with `wtforms_widgets.base_form.BaseForm` instead of `flask_wtf.FlaskForm` or `wtforms.Form`.

Import the `StringField` and `PasswordField` from `wtforms_widgets.fields.core`.
```python
from wtforms import validators

from wtforms.validators import Email
from wtforms_widgets.base_form import BaseForm
from wtforms_widgets.fields.core import StringField, PasswordField

class RegisterForm(BaseForm):
email = StringField('Email Address', [Email(), validators.DataRequired(message='Forgot your email address?')])
password = PasswordField('Password', [validators.DataRequired(message='Must provide a password. ;-)')])
```

Displaying the form in jinja is much simpler and looks great.
```html+jinja

{% for field in form %}
{{ field(render_mode='horizontal', autocomplete='off') }}
{% endfor %}

```

# Available field types

- `SelectField`
- `SelectMultipleField`
- `RadioField`
- `StringField` / `TextField`
- `IntegerField`
- `DecimalField`
- `MoneyField`
- `FloatField`
- `BooleanField`
- `DateTimeField`
- `DateField` (with [bootstrap-datepicker](https://www.npmjs.com/package/bootstrap-datepicker))
- `TextAreaField`
- `PasswordField`
- `FileField`
- `HiddenField`
- `SubmitField`
- `QuerySelectField`
- `QuerySelectMultipleField`
- `FieldList`
- `FormField`
- `TypeaheadField`
- `ReadonlyTextField`
- `MacField`