formutils.py 785 B

1234567891011121314151617181920212223
  1. from wtforms.fields import StringField
  2. import wtforms.widgets
  3. class AutocompleteTextInput(wtforms.widgets.Input):
  4. def __init__(self, datalist=None):
  5. super().__init__('text')
  6. self.datalist = datalist
  7. def __call__(self, field, **kwargs):
  8. # every second can be specified
  9. if self.datalist is not None:
  10. return super(AutocompleteTextInput, self).__call__(
  11. field, list=self.datalist, autocomplete="autocomplete",
  12. **kwargs)
  13. return super(AutocompleteTextInput, self).__call__(
  14. field, **kwargs)
  15. class AutocompleteStringField(StringField):
  16. def __init__(self, datalist, *args, **kwargs):
  17. super().__init__(*args, **kwargs)
  18. self.widget = AutocompleteTextInput(datalist)