0

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

class ModulesView(sqla.ModelView):
    page_size = 250

但是,如果能够在运行时更改该数字作为查询参数,例如http://localhost:5000/admin/module/?page_size=10 ,那就太好了。

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

4

1 回答 1

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

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

于 2015-01-27T07:27:35.957 回答