2014-09-23 73 views
0

我在做什麼錯誤?我得到一個異常拋出。如何在燒瓶中製作自定義過濾器admin

例外:無效字段:不包含任何列。

我實際上想過濾來自三個不同欄的結果,其中包含房間的成本。如果任何房間滿足三個房間的特定條件,那麼它應該出現在列表中。這就是爲什麼我想製作一個自定義過濾器。

請幫幫我。提前致謝。從flask.ext.admin.model進口 :

from flask.ext.admin.babel import lazy_gettext 
    from flask.ext.admin.model import filters 

    class MyBaseFilter(filters.BaseFilter): 
     """ 
      Base SQLAlchemy filter. 
     """ 
     def __init__(self, column, name, options=None, data_type=None): 
      """ 
       Constructor. 

       :param column: 
        Model field 
       :param name: 
        Display name 
       :param options: 
        Fixed set of options 
       :param data_type: 
        Client data type 
      """ 
      super(MyBaseFilter, self).__init__(name, options, data_type) 

      self.column = column 

    class Views(): 
     class HotelAdmin(ModelView): 
      class FilterCost(MyBaseFilter): 
       def apply(self, query, value): 
        return query.filter(self.column > value) 

       def operation(self): 
        return lazy_gettext('Cost') 


      column_labels = {'hotel_name':'Hotel Details'} 
      column_list = ('hotel_name','website') 
      column_searchable_list = ('city',) 
      column_filters = (FilterCost(Table.Hotel.deluxe_room,'Cost'),'state') 

回答

0

我做了以下內容和它的工作:

補充說: 從flask.ext.admin.contrib.sqla進口過濾器

刪除過濾器和 class MyBaseFilter(filters.BaseFilter)

然後我在我的過濾器類中繼承了「filters.BaseSQLAFilter」。

但是,如何使用「class MyBaseFilter(filters.BaseFilter)」,它仍然會拋出一個錯誤