1

我在这做错了什么?我收到一个异常。

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

我实际上想过滤包含房间成本的三个不同列的结果。如果任何房间满足三个房间中的某个条件,那么它应该出现在列表中。这就是为什么我想制作一个自定义过滤器。

请帮我。提前致谢。

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

1 回答 1

0

我做了以下,它的工作:

补充:从 flask.ext.admin.contrib.sqla 导入过滤器

删除:从 flask.ext.admin.model 导入过滤器和类 MyBaseFilter(filters.BaseFilter)

然后我在我的过滤器类中继承了“filters.BaseSQLAFilter”。

但是,如何使用“class MyBaseFilter(filters.BaseFilter)”,它仍然抛出错误

于 2014-09-23T14:42:35.690 回答