Форум сайта python.su
Имеется обычная самая простая view:
class MyModelView(sqla.ModelView): column_list = ['first', 'two’]
Отредактировано alexbadaloff (Май 24, 2020 14:06:36)
Офлайн
А что мешает передавать список полей через GET параметры например “?fields=col1,…colN” и менять self.column вьюшки, или в get_list_columns ?
исходники полистайте https://github.com/flask-admin/flask-admin/blob/7fa26ab227868ff7512bb25c26a30fd7d69184bc/flask_admin/model/base.py
сем не пользуюсь
Офлайн
Была такая мысль. Не уверен, нормально ли видеть в строке например 20 и более параметров?
Но за направление, спасибо.
Отредактировано alexbadaloff (Май 24, 2020 15:06:39)
Офлайн
хотите - храните в базе, сессии, куках, тут уже на вкус и цвет …
просто GET-параметры - самое простое
Офлайн
Я тут попробовал css класс с параметром display: none который меняется при клике checkbox. И присвоил его в td. Все ок. Скрывается быстро. Но когда возвращаю столбец, то слетают стили. И столбцы все в кучу сбиваются.
Видимо надо отловить какие ещё стили у td были по умолчанию и их восстанавливать. Пока сделал через url параметр.
Отредактировано alexbadaloff (Май 28, 2020 17:33:16)
Офлайн
alexbadaloffВнутри td сделай div или span и у него стиль display меняй. Не трогай таблицы, они в разных браузерах по-разному сделаны, лучше их не трогать и вообще стараться не использовать (заменить на div'ы), кроме как для вывода табличных данных.
Я тут попробовал css класс с параметром display: none который меняется при клике checkbox. И присвоил его в td. Все ок. Скрывается быстро. Но когда возвращаю столбец, то слетают стили.
Отредактировано py.user.next (Май 28, 2020 22:16:52)
Офлайн
Отлично. Да. Так не ломаются стили таблицы. Осталось только понять как сохранить состояние между обновлениями страницы. Если сортировать по какому-нибудь видимому столбцу страница обновляется и скрытый столбец восстанавливается.
Отредактировано alexbadaloff (Май 30, 2020 12:42:18)
Офлайн
alexbadaloffНужно при скрытии столбца передать скрытый асинхронный запрос бэкенду с указанием пометить это состояние столбца в сессии данного клиента. При следующем выводе страницы бэкенд сначала посмотрит в сессии клиента, в каком состоянии столбец, и в соответствии с этим выведет таблицу. Сессия на стороне клиента поддерживается через печенье. Как только ты почистишь печенье, все настройки сессии слетят. Также можно добавить кнопку “установить по умолчанию”, которая сбросит все настройки с помощью запроса, чтобы сделать это без очистки печенья (в печенье может храниться ещё 100500 настроек, которые не надо стирать).
Осталось только понять как сохранить состояние между обновлениями страницы.
Отредактировано py.user.next (Май 30, 2020 22:07:37)
Офлайн
Спасибо за разъяснение. Может дойдут руки так сделать.
Пока сделал, формирование url по нажатию имени столбца. А в шаблоне уже GET и фильтрация.
Офлайн