When saving a RadioField to the DB, check that what is being saved is one of the options

This commit is contained in:
leigh-mil 2019-03-11 15:05:14 -04:00
parent a2754d0646
commit ed20c6a6a2

View File

@ -18,11 +18,16 @@ class BaseForm(FlaskForm):
def data(self):
# remove 'csrf_token' key/value pair
# remove empty strings and None from list fields
# prevent values that are not an option in a RadioField from being saved to the DB
_data = super().data
_data.pop("csrf_token", None)
for field in _data:
if _data[field].__class__.__name__ == "list":
_data[field] = [el for el in _data[field] if el not in EMPTY_LIST_FIELD]
if self[field].__class__.__name__ == "RadioField":
choices = [el[0] for el in self[field].choices]
if _data[field] not in choices:
_data[field] = None
return _data
def validate(self, *args, **kwargs):