использую только способ втупую - записал в строки эти даты и каждый хендлер проверяю на наличие этих данных через меджик фильтр.
Если ещё точнее - что делать с колбекдатой, как её можно красиво организовать.
читал где-то про фабрику колбэков. там можно и dict засунуть
Вот чет я рою документацию, прыгаю в исходниках, не могу найти никак что-то подобное. Я уже и напрямую метод анпак пробовал...
Разбирайся сам, я уже засыпаю. https://github.com/MasterGroosha/telegram-report-bot/blob/master/bot/common.py https://github.com/MasterGroosha/telegram-report-bot/blob/master/bot/handlers/main_group_user.py#L47-L56 https://github.com/MasterGroosha/telegram-report-bot/blob/master/bot/handlers/callbacks_reports.py
Спасибо большое, оч выручил.
class MyCallbackData(CallbackData, prefix="my_cb"): answer: str is_true: bool builder = InlineKeyboardBuilder() builder.add(InlineKeyboardButton(text="my button", callback_data=MyCallbackData(answer="yes", is_true=True).pack())) router = Router() @router.callback_query(MyCallbackData.filter() async def cb_show(query: CallbackQuery, callback_data: MyCallbackData): print(callback_data.answer) print(callback_data.is_true) @router.message() async def any_msg(message: Message) await message.answer("my text", reply_markup=builder.as_markup()) Накидал тут импорты сам ищи
Говорит, что колбек дата не приходит, когда кликаю по кнопке
ты точно включил router тот?
Квери то приходит... А дата как аргумент к функции - нет
Потому что я прочитал трейс, там написано - пропущен один обязательный аргумент
Показывай код, который запускаешь
Уже решили проблему, неправильно назвал аргумент.
А какую роль выполняет параметр prefix в классе колбека? Я с трешкой ещё не работал, но пример выглядит намного перспективнее, чем работа в двушке
Делает колбек дату, чтобы начиналась с prefix Там чета типа f"{prefix}{':'.join(args)}"
Тоже самое, что и первый параметр в двушке - ключ, по которому данные в принципе разделяются prefix = "ABC" => callback_data = "ABC:..."
+ в двушке было так же бтв
Ага, спасибо, так и думал
Обсуждают сегодня