Не работает стоп машины состояний state finish aiogram
Есть бот написаный на аиограм питон, есть машина состояний которая формирует заказ, и я сделал функцию для завершения стейта на любой стадии, но она почему то не работает, смотрел у других блогеров но не получается у меня почему то
@dp.message_handler(commands=["отмена"], state="*")
@dp.message_handler(Text(equals="отмена", ignore_case=True), state="*")
async def cancel_fsm(message: types.Message, state: FSMContext):
await state.finish()
Ответы (1 шт):
Автор решения: Ivan Kachula
→ Ссылка
Попробуйте таким способом, так всё работает:
@dp.message_handler(state='*', commands='cancel')
async def cancel_handler(message: types.Message, state: FSMContext):
current_state = await state.get_state()
if current_state is None:
return
await state.finish()
Чтобы всё работало коректно, вставляйте этот фрагмент кода в файл со всема основными командами, по типу: /start
Так же можете попробовать переместить ваш пример кода в тот файлик с командами, если он у вас где-то в другом месте проекта