Не срабатывает функция с callback_query_handler
Есть проблема, постараюсь ее кратко описать. Есть 2 инлайн кнопки в функции, на момент работы функции работает состояние. Одна из инлайн кнопок срабатывает. При вызове другой кнопки включается другое состояние и функция с callback_query_handler пытается перехватить ее call. Однако почему-то функция не срабатывает по нажатию на кнопку, зато срабатывает функция с @dp.callback_query_handler(lambda call: True)
Общая функция, которая принимает все коллбеки в себя:
@dp.callback_query_handler(lambda call: True) #срабатывает
async def all_callbacks(call):
...
FSM:
class AdminStates(StatesGroup):
report = State()
Инлайн кнопка:
class REPORT:
def __init__(self, number):
self.REPORT_TO_CUSTOMER = InlineKeyboardMarkup(
inline_keyboard=[
[
InlineKeyboardButton(text='Пожаловаться', callback_data=f'report#{number}')
]
]
)
Функция, которая должна срабатывать, но не срабатывает:
@dp.callback_query_handler(lambda call: call.data.split('#')[0] == 'report', state=AdminStates.report) # значение call возвращает верное значение!
async def process_report(call, state: FSMContext):
print('fuck')
Основная кнопка для работы функции, указанной выше:
@dp.message_handler(state=LocationStates.location, content_types=['location'])
async def process_get_location(message: Message, state: FSMContext):
await on_spot_msg.edit_text('Хотите пожаловаться в администрацию на работодателя?', reply_markup=keyboards.REPORT(order.idOrder).REPORT_TO_CUSTOMER)
await state.finish()
await AdminStates.report.set()
print(await state.get_state()) # состояние AdminStates.report работает!
Источник: Stack Overflow на русском