Как записать текст, который содержит кнопка в БД? Неужели нужно писать под каждую кнопку свой обработчик?
У меня есть код:
@dp.callback_query_handler(text="True")
async def is_got_acquainted(message: types.Message):
await bot.delete_message(message.from_user.id, message.message.message_id)
await bot.send_message(message.from_user.id, "Спасибо! Мы ценим ваше внимание!\nОтветьте на 3 вопроса, и получи скидку на продление!")
db.is_acquainted_True(message.from_user.id) # добавляет в бд
await asyncio.sleep(1) # тут рельно 1 секунда должна быть
await Survey.experience.set()
await bot.send_message(message.from_user.id, "Какой у вас опыт в трейдниге?", reply_markup=keybards.FirstQMenu)
@dp.message_handler(state=Survey.experience)
async def deposit_question(message: types.Message, state: Survey):
db.add_experience(message.text, message.from_user.id)
await Survey.next()
await bot.send_message(message.from_user.id, "Какой у вас размер депозита?", reply_markup=keybards.SecondQMenu)
Благодаря функции add_experience я добавляю данные в SQL. Но проблема в том, что она не добавляет текст с кнопки, а только тот, который пользователь напишет сам. Мне нужно чтобы в бд попадал текст именно с кнопки, при нажатии на нее. Я понимаю что использование message.text в данном случае не верно, но как тогда это сделать?
# добавление ответов на вопросы
def add_experience(self, message, user_id):
with self.connection:
return self.cursor.execute("UPDATE clientdata SET (experience)=(?) WHERE user_id = (?)",
(message, user_id,))
Вот кнопки:
FirstQMenu = InlineKeyboardMarkup(row_width=1)
FirstBtn1 = InlineKeyboardButton(text="Менее 1 года", callback_data="1_1")
FirstBtn2 = InlineKeyboardButton(text="От 1 года до 2 лет", callback_data="1_2")
FirstBtn3 = InlineKeyboardButton(text="От 2 лет до 3 лет", callback_data="1_3")
FirstBtn4 = InlineKeyboardButton(text="Более 3 лет", callback_data="1_4")
FirstQMenu.insert(FirstBtn1)
FirstQMenu.insert(FirstBtn2)
FirstQMenu.insert(FirstBtn3)
FirstQMenu.insert(FirstBtn4)