class SomeModelView(ModelView): datamodel = CustomSQLAInterface(SomeModel) base_permissions = [ 'can_list', 'can_show', 'can_add', 'can_edit', 'can_delete' ] list_columns = [ 'field_string', 'field_integer', 'field_float', 'field_date' ]
class SomeModelView(ModelView): datamodel = CustomSQLAInterface(SomeModel) base_permissions = [ 'can_list', 'can_show', 'can_add', permissions.ACTION_CAN_EDIT, permissions.ACTION_CAN_DELETE, ] list_columns = ['field_string', 'field_integer', 'field_float', 'field_date']
def __init__(self, appbuilder): super().__init__(appbuilder) # Go and fix up the SQLAInterface used from the stock one to our subclass. # This is needed to support the "hack" where we had to edit # FieldConverter.conversion_table in place in airflow.www.utils for attr in dir(self): if not attr.endswith('view'): continue view = getattr(self, attr, None) if not view or not getattr(view, 'datamodel', None): continue view.datamodel = CustomSQLAInterface(view.datamodel.obj)