Всем привет! Хочу реализовать простенькое многоуровневое меню. В моей программе есть два уровня: 1 уровень показать меню, 2 уровень перейти на кнопки из первого меню и вернуться назад обратно. В моей реализации (код ниже), кнопка назад отрабатывает свою функцию, но как ее связать с 1 уровнем, чтобы это сообщение редактировалось, как объявить этот callback?! И как потом можно лучше масштабировать данный код для 3, 4 уровненных инлайн меню?
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await list_categories(message)
async def list_categories(message: types.Message):
text = f'Добрый день!\n\n' \
f'Мой номер:\n' \
f'+7-000-000-00-00'
markup = InlineKeyboardMarkup(row_width=2)
markup.insert(InlineKeyboardButton(text='Прайс', callback_data='price'))
markup.insert(InlineKeyboardButton(text='Акции', url="https://example.com"))
await message.answer(text=text, reply_markup=markup)
@dp.callback_query_handler(lambda callback: True)
async def callback_inline(callback_query: types.CallbackQuery):
if callback_query.data == 'main_menu':
await callback_query.message.edit_text(text='Вы вернулись')
elif callback_query.data == 'price':
markup = InlineKeyboardMarkup()
markup.insert(InlineKeyboardButton(text='Назад', callback_data='main_menu'))
await callback_query.message.answer(text='Вы в категории price', reply_markup=markup)
await callback_query.answer()