diff --git a/superset/viz.py b/superset/viz.py index 6fc8cf988709..c50027627c6f 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -68,10 +68,10 @@ def __init__(self, datasource, form_data): self.status = None self.error_message = None - def get_fillna_for_type(self, col_type): + def get_fillna_for_col(self, col): """Returns the value for use as filler for a specific Column.type""" - if col_type: - if col_type == 'TEXT' or col_type.startswith('VARCHAR'): + if col: + if col.is_string: return ' NULL' return self.default_fillna @@ -79,8 +79,11 @@ def get_fillna_for_columns(self, columns=None): """Returns a dict or scalar that can be passed to DataFrame.fillna""" if columns is None: return self.default_fillna - columns_types = self.datasource.columns_types - fillna = {c: self.get_fillna_for_type(columns_types.get(c)) for c in columns} + columns_dict = {col.column_name: col for col in self.datasource.columns} + fillna = { + c: self.get_fillna_for_col(columns_dict.get(c)) + for c in columns + } return fillna def get_df(self, query_obj=None):