2014-09-23 76 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)”,它仍然会抛出一个错误