Запись переменной через кнопку
Можете подсказать, как можно по нажатию кнопки записать данные в переменную? Точнее, насколько обработчик этой кнопки будет большой, или это можно будет сделать в аргументах кнопки. Или мне попробовать это реализовать через callback_data, которые можно будет перезаписывать? У меня всплывает много вариантов решения этой "сложной" задачи, но не могу понять как будет правильнее
Код:
@dp.callback_query_handler(text="vipcount")
async def vipcount(query: CallbackQuery):
keyboard = InlineKeyboardMarkup(row_width=3).add(
InlineKeyboardButton(text=1, callback_data="buyvip"), #<--- эта кнопка должна поставить в переменную какое-либо значение
InlineKeyboardButton(text=2, callback_data="buyvip"),
InlineKeyboardButton(text=3, callback_data="buyvip")
)
await query.message.edit_text(text, reply_markup=keyboard)
Обработчик, который будет использовать эти переменные планируется реализовать отдельно, не в этой функции. Заранее спасибо за помощь?
p.s. пишу на уставшую голову. если что-то надо будет объяснить подробнее - на связи
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
Из задачи вам нужно что-то типо этого.
#Клавиатуру сделай так
keyboard = InlineKeyboardMarkup(row_width=3).add(
InlineKeyboardButton(text=1, callback_data="buyvip:1"), #<--- эта кнопка должна поставить в переменную какое-либо значение
InlineKeyboardButton(text=2, callback_data="buyvip:2"),
InlineKeyboardButton(text=3, callback_data="buyvip:3")
)
variable = 0
@dp.callback_query_handler(text_startswith="buyvip")
async def buyvip(query: CallbackQuery):
await query.answer()
global variable
variable = int(query.data.split(":")[1])