Помогите исправить ошибку в коде, что бы кнопка возвращения на предыдущее действие работала без проблем
Ошибка: RuntimeWarning: coroutine 'inline' was never awaited. handle = None # Needed to break cycles when an exception occurs. RuntimeWarning: Enable tracemalloc to get the object allocation traceback. Код:
@dp.message_handler(commands=['buy'])
async def inline(message: types.Message):
section = InlineKeyboardMarkup()
sec1 = InlineKeyboardButton(text='Раздел 1', callback_data='sec1')
sec2 = InlineKeyboardButton(text='Раздел 2', callback_data='sec2')
sec3 = InlineKeyboardButton(text='Раздел 3', callback_data='sec3')
section.add(sec1, sec2, sec3)
await message.reply(MESSAGES['raa'], reply_markup=section)
@dp.callback_query_handler(lambda a: True)
async def inline_a(a):
if a.data == 'sec1':
product1 = InlineKeyboardMarkup()
pr1 = InlineKeyboardButton(text='Товар 1', callback_data='pr1')
pr2 = InlineKeyboardButton(text='Товар 2', callback_data='pr2')
pr3 = InlineKeyboardButton(text='Товар 3', callback_data='pr3')
back = InlineKeyboardButton(text='<--Назад', callback_data='back')
product1.add(pr1, pr2, pr3, back)
await bot.send_message(a.message.chat.id, MESSAGES['ra9'], reply_markup=product1)
elif a.data == 'back':
return inline(a.message)
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
Ваша функция inline() асинхронная, перед вызовом такой функции указывается оператор await.
Вместо return inline(a.message) используйте return await inline(a.message)