AIogramm. Машина состояний не выполняет первый State без ответа от пользователя
При инициализации машины состояний aiogram не начинает работу, не получив какие-либо данные от пользователя.
Машина состояний
class FSMComplete(StatesGroup):
id_task = State()
obj = State()
Cообщение, инициализирующее запуск машины состояний
async def watch_task(message: types.Message):
if message.from_user.id == ID:
read = await sqlite_db.sql_read2()
for ret in read:
await bot.send_message(message.from_user.id, text=f'<b>{ret[0]}</b>\n Описание: {ret[2]}\n Срок выполнения:'
f' {ret[3]}')
await bot.send_message(message.from_user.id, text='^^^', reply_markup=InlineKeyboardMarkup().
add(InlineKeyboardButton(f'Просмотреть выполнение "{ret[0]}"',
callback_data=f'watch {ret[1]}')))
Установка id_task машины состояний
async def complete_task_start(callback_query: types.CallbackQuery):
r = callback_query.data.split(' ')
global id_task_complete
id_task_complete = r[1]
# В этом месте FSM не переходит к следующему пункту. Проблема решается получением любого сообщения от пользователя, но почему?
await bot.send_message(callback_query.from_user.id, text='Really?', reply_markup=kb_client_or)
await FSMComplete.id_task.set()
await callback_query.answer()
Следующий шаг
async def load_id_task(message: types.Message, state: FSMContext):
await FSMComplete.id_task.set()
async with state.proxy() as data:
data['IDtask'] = id_task_complete
await FSMComplete.next()
await message.answer('Выберите, какой объект хотите просмотреть', reply_markup=kb_set_obj_all)
await FSMComplete.obj.set()
Регистрация хендлеров
def register_handlers_admin(dp: Dispatcher):
dp.register_callback_query_handler(complete_task_start, Text(startswith='watch'), state=None)
dp.register_message_handler(load_id_task, state=FSMComplete.id_task)
dp.register_message_handler(load_name_task, state=FSMComplete.obj)