декоратор? Т.е. у меня бот выдаёт сообщение с несколькими инлайн-кнопками, мне нужно чтобы если пользователь нажал на "правильную" (загаданную ботом) кнопку, то происходила одна функция, а если "неправильную" - то другая функция. Соответственно как в коллбек хэндлер передать та это кнопка или не та?
Хз на сколько это правильно, но Я пихаю в колбек word Хендлер фильтр настраиваю на startwith='callback-' а потом сплитую дату на колбэк и word
не очень понял. коллбек хэндлер это же другой декоратор, он переменную word не видит, в этом проблема. в telebot я делал переменную word глобальной, и таким образом её можно юзать в разных декораторах, а в аиограме не получается
https://t.me/advice17/5
спасибо, но я как раз и пытаюсь БЕЗ глобальных переменных обойтись)
А что ты хранишь в word?
выше чуть описал. word = рандомный item из имеющегося списка.
1)Ну создаем коллбэк setting_callback = CallbackData("Setting", "action") 2) Вешаем на кнопку колбэк с параметром callback_data=setting_callback.new(f'setting_type-{key}') 3) Создаем хендлер, котоырй будет ловить нажатие на кнопку @dp.callback_query_handler(Text(startswith='Setting:setting_type-'), 4) Получаем переданный параметр key = query.data.split("-")[1] Есть папашки из чата могут предложить что-то лучше буду рад
благодарю, попробую
Пункт 3 так, как ты написал не работает - "Text" подчёркивает красным, а если написать @dp.callback_query_handler(content_type='Text'.startswith=='Setting:setting_type-') то пишет что invalid filter name(s): content_type
Обсуждают сегодня