Проблема с вызовом функции в телеграм боте с aiogram

Какая-то странная проблема. В финале мне нужно получить значение из Inline кнопок и сохранить его в state и вывести сообщением, но вместо сохранения в state нужного мне значения он сохраняет и выводит show_product.

@dp.callback_query_handler(lambda call: call.data == 'show_product')
async def type_product_show(message: CallbackQuery, state: FSMContext):
    
    key = InlineKeyboardMarkup(row_width=2)
    for prod in products:
        key.insert(InlineKeyboardButton(text=prod, callback_data=prod))
    key.add(InlineKeyboardButton(text='Главное меню', callback_data='main_menu')
    text = str('Выбирете пункт или напишите текст')
    await bot.send_message(message.from_user.id, text, reply_markup=key)
    await state.finish()
    await product(message, state)


async def product(message: Union[CallbackQuery, Message], state: FSMContext):
    await state.finish()
    if isinstance(message, Message):
        async with state.proxy() as data:
            data['product'] = message.text
    if isinstance(message, CallbackQuery):
        if message.data == 'main_menu':
            await state.finish()
        else:
            async with state.proxy() as data:
                data['product'] = message.data
    key = InlineKeyboardMarkup()
    key.add(InlineKeyboardButton(text='Главное меню', callback_data='main_menu'))
    async with state.proxy() as data:
        product = data['product']
    text = str(f'Вы выбрали {product}')
    await bot.send_message(message.from_user.id, text, reply_markup=key)

Я понимаю, что это скорее всего из-за вызова функции product(message, state). Но я не знаю как решить данный вопрос


Ответы (0 шт):