Flask-Admin:在外键上添加过滤器

时间:2013-08-19 16:27:14

标签: python flask flask-admin

我正在使用Flask-Admin为我的应用程序创建一个后端界面。我想在管理视图中添加一些过滤器,但是我收到了错误

'Exception: Unsupported filter type column_name'

其中列名称是外键的列字段。 有没有人之前使用过flask-admin?

这里有模特:

class Keywords(Base):
    id = Column(String(4), primary_key=True)
    language = Column(ForeignKey('w_accounts.language'))
    camp_type = Column(ForeignKey('w_camp_types.camp_type'))
class KeywordsAdmin(BaseAdmin):
   column_searchable_list = ('toa_id', 'name', 'toa')
   column_list = ('toa_id', 'language', 'camp_type', 'name', 'aliases', 'toa', 'toa_type')
   column_filters = ('language',) 

在浏览API之后,我尝试添加以下属性:

       column_select_related_list = ('language',)

当我在浏览器上加载页面时,我得到一个异常,而不是立即收到错误

"AttributeError: 'ColumnProperty' object has no attribute 'mapper'"

1 个答案:

答案 0 :(得分:2)

你必须添加关系。

class Keywords(Base):
    id = Column(String(4), primary_key=True)
    language = Column(ForeignKey('w_accounts.language'))
    camp_type = Column(ForeignKey('w_camp_types.camp_type'))

    language_ref = relationship("w_accounts", backref=db.backref('keywords', lazy='dynamic'))

然后:

column_select_related_list = ('language_ref',)