flask-appbuilder中的多个选择

时间:2018-07-11 10:35:05

标签: python flask flask-appbuilder

我有一个字段,当前用户只能在其中键入内容,但是我的表中有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']]

1 个答案:

答案 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,请不要忘记导入要使用的过滤器。