我使用flask-admin和SQLAlchemy后端。可以在源代码中更改每页的条目,如下所示:
class ModulesView(sqla.ModelView):
page_size = 250
但能够在运行时更改该数字作为查询参数,即http://localhost:5000/admin/module/?page_size=10,真是太棒了。
请告知是否可以在运行时更改它。我有一个丑陋的想法来覆盖_get_list_extra_args并在那里设置page_size,但我正在寻找更好的解决方案。或者可能还有另一种使用方式,比查询参数更好?
答案 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
可能不如创建过滤器那么好,但至少它按预期工作,并且可以重复使用所有模型。