2015-01-22 5 views
0

Я использую флэшки-админки и SQLAlchemy. Можно изменять записи на странице в исходном коде, например:Как указать записи на страницу во время выполнения

class ModulesView(sqla.ModelView): 
    page_size = 250 

Но было бы здорово, чтобы быть в состоянии изменить это число во время выполнения, в качестве параметра запроса, т.е. http://localhost:5000/admin/module/?page_size=10.

Пожалуйста, сообщите, если возможно изменить его во время выполнения. У меня есть уродливая идея переопределить _get_list_extra_args и установить здесь page_size, но я ищу лучшее решение. Или, может быть, есть другой способ использования, лучше, чем параметр запроса?

ответ

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 

Наверное, не так хорошо, как создать фильтр, но, по крайней мере, он работает, как ожидалось, и повторно использоваться для всех моделей.