如何在运行时指定每页的条目

时间:2015-01-22 10:05:52

标签: flask-admin

我使用flask-admin和SQLAlchemy后端。可以在源代码中更改每页的条目,如下所示:

class ModulesView(sqla.ModelView):
    page_size = 250

但能够在运行时更改该数字作为查询参数,即http://localhost:5000/admin/module/?page_size=10,真是太棒了。

请告知是否可以在运行时更改它。我有一个丑陋的想法来覆盖_get_list_extra_args并在那里设置page_size,但我正在寻找更好的解决方案。或者可能还有另一种使用方式,比查询参数更好?

1 个答案:

答案 0 :(得分:0)

最后,我的解决方案如下:

class PageView(sqla.ModelView):
    def _get_list_extra_args(self):
        args = super()._get_list_extra_args()
        new_page_size = request.args.get('max', 0, type=int)
        if new_page_size > 0:
            args.extra_args['max'] = new_page_size
            self.page_size = new_page_size

        return args

可能不如创建过滤器那么好,但至少它按预期工作,并且可以重复使用所有模型。