我有一个字段,当前用户只能在其中键入内容,但是我的表中有ENUM,我希望这样做,以便他们只能选择一个或另一个作为选项。目前我正在尝试使用base_filters,我已正确导入所有内容,只是无法正常工作
class FrankView(ModelView):
datamodel = SQLAInterface(Frank)
list_columns = ['id', 'name']
add_columns = ['id', 'name']
edit_columns = ['id', 'name']
base_filters = [['name', FilterEqual, 'Maven']]
答案 0 :(得分:0)
不确定在这种情况下为什么要使用base_filter,但是不确定F.A.B中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,请不要忘记导入要使用的过滤器。