Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как ловить название inline клавиатуры в FSM ? aiogram 3.4 + sqlalchemy

Александр Миллер Ученик (104), на голосовании 1 неделю назад
Подскажите пожалуйста. Пишу бота на aiogram 3 + sqlalchemy. Нужно, чтобы при нажатие на inline клавишу, бот ловил название этой клавиши и добавлял ее в state

С reply клавиатурой разобрался, но как такой же код реализовать с inline?

 ############################# FSM для дабавления/изменения данных ######################### 

class AddDetail(StatesGroup):
category = State()
name = State()
number = State()
status = State()

detail_for_change = None

texts = {
"AddProduct:category": "Выберите изделия заново ",
"AddDetail:name": "Введите имя заново:",
"AddDetail:number": "Введите заводской номер заново:",
"AddDetail:status": "Введите статус заново:",
}

##### Становимся в состояние ожидания ввода name для функции добавления данных #####
@admin_router.message(StateFilter(None), F.text == "Добавить данные по детали")
async def add_detail(message: types.Message, state: FSMContext):
await message.answer(
"Выберите деталь", reply_markup=CO2010_KB
)
await state.set_state(AddDetail.name)

############################# Ловим состояние name и переходим в ожидание состояния number #########################
@admin_router.message(AddDetail.name, F.text)
async def add_number(message: types.Message, state: FSMContext):
if message.text == "." and AddDetail.detail_for_change:
await state.update_data(name=AddDetail.detail_for_change.name)
else:

await state.update_data(name=message.text)
await message.answer('Введите заводской номер')
await state.set_state(AddDetail.number)
Голосование за лучший ответ
Похожие вопросы