2014-09-23 4 views
0

Что я делаю неправильно в этом ?? Я получаю исключение.Как сделать собственный фильтр в фляге admin

Исключение: Неверное поле: не содержит столбцов.

На самом деле я хочу отфильтровать результаты из трех разных столбцов, содержащих стоимость комнат. Если любая комната удовлетворяет определенному условию из трех комнат, то она должна появиться в списке. Вот почему я хочу создать собственный фильтр.

Пожалуйста, помогите мне. Заранее спасибо.

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

удалены: от импорта flask.ext.admin.model фильтры И класс MyBaseFilter (filters.BaseFilter)

, а затем я унаследовал «filters.BaseSQLAFilter» в своем классе фильтра.

Но все же, как я могу использовать «класс MyBaseFilter (filters.BaseFilter)», он все еще выдает ошибку