不确定为什么要在这种情况下使用 base_filter,但 FAB 中 ENUM 的基本用法是这样的:
from flask_appbuilder import Model, ModelView
from sqlalchemy import Column, Integer, Enum
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.models.sqla.filters import FilterEqual
class Frank(Model):
__tablename__='frank'
id = Column(Integer, primary_key=True, nullable=False)
name_as_enum=Column(Enum('Maven','Not Maven'), nullable=False, default='Maven')
class FrankView(ModelView):
datamodel = SQLAInterface(Frank)
list_columns = ['id', 'name_as_enum']
add_columns = ['id', 'name_as_enum']
edit_columns = ['id', 'name_as_enum']
base_filters = [['name_as_enum', FilterEqual, 'Maven']]
如果您想使用 base_filters,请不要忘记导入您尝试使用的过滤器。