Или как? Проблема та же https://lolz.live/threads/7830232/ Только теперь у меня 2 инлайн клавиатуры и действие не выполняется, хотя пишет handled
Hollywood, а кстати, могу ответить что же все таки было в 1 и почему нужны разные роутеры: @rt.callback_query() async def act(callback_query: types.CallbackQuery, state: FSMContext): action = callback_query.data global hold_meaning if action == 'holdon': hold_meaning = True await callback_query.message.edit_text("Введите продолжительность холда\nДоступные параметры: 'hour', 'day', 'week', 'month'\nПример: 3 day") await state.set_state(Form.waiting_for_hold) elif action == 'holdoff': hold_meaning = False await callback_query.message.edit_text(f'Пользователь: lzt.market/members/{user_n}\nВведите сумму в рублях:') await state.set_state(Form.waiting_for_amount) @rt.callback_query() async def sendm(callback_query: types.CallbackQuery): action = callback_query.data if action == 'approve_': response = await market.payments.transfer(user_id=user_n, amount=price_id, currency="rub", transfer_hold=hold_meaning, hold_length_value=hvalue, hold_length_option=hoption, secret_answer="1") print(response.json()) elif action == 'reject_': print('stopped') Python @rt.callback_query() async def act(callback_query: types.CallbackQuery, state: FSMContext): action = callback_query.data global hold_meaning if action == 'holdon': hold_meaning = True await callback_query.message.edit_text("Введите продолжительность холда\nДоступные параметры: 'hour', 'day', 'week', 'month'\nПример: 3 day") await state.set_state(Form.waiting_for_hold) elif action == 'holdoff': hold_meaning = False await callback_query.message.edit_text(f'Пользователь: lzt.market/members/{user_n}\nВведите сумму в рублях:') await state.set_state(Form.waiting_for_amount) @rt.callback_query() async def sendm(callback_query: types.CallbackQuery): action = callback_query.data if action == 'approve_': response = await market.payments.transfer(user_id=user_n, amount=price_id, currency="rub", transfer_hold=hold_meaning, hold_length_value=hvalue, hold_length_option=hoption, secret_answer="1") print(response.json()) elif action == 'reject_': print('stopped') так как ни в каком декораторе не указаны фильтры (F.text == "text"), то срабатывает только 1, тот, который выше, поэтому функция со 2 декоратором не работает и на самом деле не нужен второй роутер, достаточно использовать фильтры: from aiogram import F @rt.callback_query(F.data.in_({"holdon", "holdoff"})) async def act(callback_query: types.CallbackQuery, state: FSMContext): action = callback_query.data global hold_meaning if action == 'holdon': hold_meaning = True await callback_query.message.edit_text("Введите продолжительность холда\nДоступные параметры: 'hour', 'day', 'week', 'month'\nПример: 3 day") await state.set_state(Form.waiting_for_hold) else: hold_meaning = False await callback_query.message.edit_text(f'Пользователь: lzt.market/members/{user_n}\nВведите сумму в рублях:') await state.set_state(Form.waiting_for_amount) @rt.callback_query(F.data.in_({"approve_", "reject_"}) async def sendm(callback_query: types.CallbackQuery): action = callback_query.data if action == 'approve_': response = await market.payments.transfer(user_id=user_n, amount=price_id, currency="rub", transfer_hold=hold_meaning, hold_length_value=hvalue, hold_length_option=hoption, secret_answer="1") print(response.json()) else: print('stopped') Python from aiogram import F @rt.callback_query(F.data.in_({"holdon", "holdoff"})) async def act(callback_query: types.CallbackQuery, state: FSMContext): action = callback_query.data global hold_meaning if action == 'holdon': hold_meaning = True await callback_query.message.edit_text("Введите продолжительность холда\nДоступные параметры: 'hour', 'day', 'week', 'month'\nПример: 3 day") await state.set_state(Form.waiting_for_hold) else: hold_meaning = False await callback_query.message.edit_text(f'Пользователь: lzt.market/members/{user_n}\nВведите сумму в рублях:') await state.set_state(Form.waiting_for_amount) @rt.callback_query(F.data.in_({"approve_", "reject_"}) async def sendm(callback_query: types.CallbackQuery): action = callback_query.data if action == 'approve_': response = await market.payments.transfer(user_id=user_n, amount=price_id, currency="rub", transfer_hold=hold_meaning, hold_length_value=hvalue, hold_length_option=hoption, secret_answer="1") print(response.json()) else: print('stopped')