diff --git a/mo/web/fields.py b/mo/web/fields.py index 6dcf435bb14743587d912838110aab4d5b880352..85eeb71fb6655b2f6f2b047968c7d92ee0c949ad 100644 --- a/mo/web/fields.py +++ b/mo/web/fields.py @@ -40,6 +40,20 @@ class Decimal(wtforms.DecimalField): return super(Decimal, self)._value() +class IntList(wtforms.StringField): + list = None + + def __init__(self, label="", validators=None, **kwargs): + super().__init__(label, validators, **kwargs) + + def pre_validate(field, form): + field.list = None + if field.data: + try: + field.list = mo.util.parse_int_list(field.data) + except mo.CheckError as e: + raise wtforms.ValidationError(str(e)) + class Points(Decimal): def __init__(self, label="Body", validators=None, **kwargs): super().__init__(label, validators, **kwargs)