бьюсь с пагинацией. Все еще надеюсь, что кто-то направит на путь истинный.
Посмотрите код, пожалуйста.
Вопросы:
Когда генерирую клаву, предаю в callback_data=pages_data.new(action='Вперед') ну или назад, зависит от страницы.
Далее хэндлер ловит нажатие на кнопку Вперед или Назад.
Но как этому хэндлеру, который поймал нажатие вперед, например, понять какая текущая страница? Как ее передать в нее?
И следом вопрос.
Для изменения предыдущего сообщения бота использовать отдельную функцию или прямо в этом хэндлере менять?
https://paste.aiogram.dev/vonuwurepe.py
для "изменения сообщения" нужно открыть доку, и найти нужный метод
Вообще можно использовать глобальную переменную для хранения текущей страницы или (даже лучше) хранилище ключей (redis, например). Только не забывай обнулять значение при окончательном выборе пользователя
t.me/advice17/5 расписаны минусы глобалов
представляю что случиться с его глобалом когда юзеров будет больше чем один
Спасибо, добрый человек. Но вроде как глобальные переменные лучше избегать.
тебе посоветовали запихивать айди страницы в калбекдату, это хорошее и используемое решение
За наводку я поблагодарил. Но не разобрался в каком хэндлере менять сообщение - писать отдельную функцию или в том, же где отловил?
создаёшь отдельный inline keyboard markup, подцепляешь нужный callback_data потом создаёшь хендлер который будет обрабатывать калбекдату
В документации aiogram есть примеры ботов. Может там есть что-то, что прольёт свет
потом обрабатываешь калбекдату например keyboard:5, вытягиваешь страницу (5), потом учитываего сколько нужно кнопок подставить из списка берёшь нужные кнопки и вставляешь циклом
Три подробных примера изучил, но они меняют одну переменную в строке. А мне нужно целый срез словаря изменить в сообщении
потом добавляешь новые кнопки где указываешь след. и пред. страницу
Обсуждают сегодня