diff --git a/superset/legacy.py b/superset/legacy.py index 8bec0846b2181..0782690fe8a95 100644 --- a/superset/legacy.py +++ b/superset/legacy.py @@ -63,8 +63,11 @@ def cast_form_data(form_data): elif v and ft == 'TextField' and field_config.get('isFloat'): v = float(v) if v != '' else None elif v and ft == 'SelectField': - if field_config.get('multi') and not isinstance(v, list): - v = [v] + if field_config.get('multi'): + if type(form_data).__name__ == 'ImmutableMultiDict': + v = form_data.getlist(k) + elif not isinstance(v, list): + v = [v] if d.get('slice_id'): d['slice_id'] = int(d['slice_id']) diff --git a/superset/views.py b/superset/views.py index f419abd9730cb..8882ba041f71d 100755 --- a/superset/views.py +++ b/superset/views.py @@ -1478,7 +1478,7 @@ def get_form_data(self): if request.args.get("viz_type"): # Converting old URLs - d = cast_form_data(request.args.to_dict()) + d = cast_form_data(request.args) extra_filters = request.args.get("extra_filters") filters = d.get('filters', [])