При нажатии на инлайн кнопку выводится много сообщенйий
помогите, пожалуйста. Сделал колбэк хэндлер, который выводит инлайн кнопки вкуса модели, но при нажатии на кнопку модели, выводится много сообщений.
Код колбэк хэндера (смысл верхнего хэндлера ещё в том, чтобы при пополнении товара, не создавалась кнопка бренд если такая уже есть):
@dp.callback_query_handler(lambda c: c.data.startswith('brand_'))
async def choose_model(callback_query: types.CallbackQuery):
brang = callback_query.data.split('_')[1]
models = db.cur.execute('SELECT DISTINCT model FROM items WHERE brang = ?', (brang,)).fetchall()
markup = InlineKeyboardMarkup(row_width=1)
buttons = [InlineKeyboardButton(text=row[0], callback_data=f"model_{row[0]}") for row in models
if not any(row[0] in button.text for button in markup.inline_keyboard)]
# Если список кнопок не пустой, создаем разметку клавиатуры и отправляем сообщение пользователю
if buttons:
markup = markup.add(*buttons)
await bot.send_message(callback_query.from_user.id, "Выберите модель", reply_markup=markup)
else:
await bot.send_message(callback_query.from_user.id, "неу брендов")
@dp.callback_query_handler(lambda c: c.data.startswith('model_'))
async def show_item(callback_query: types.CallbackQuery):
model = callback_query.data.split('_')[1]
items = [row[0] for row in db.cur.execute('SELECT taste FROM items WHERE model = ?', (model,)).fetchall()]
markup = InlineKeyboardMarkup(row_width=2)
for taste in items:
markup.add(InlineKeyboardButton(text=taste, callback_data=f"model_{taste}"))
await bot.send_message(callback_query.from_user.id, f"Выберите вкус модели {model}", reply_markup=markup)
Источник: Stack Overflow на русском

