2013-08-19 43 views
3

我正在使用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'" 

回答

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',)