Добрый день, помогите с реализацией функции редактирования товара

помогите с реализацией функции редактирования товара. В коде вы видите функцию редактирования товара, но когда я записываю через FSM новое название вкусы, то меняется все названия вкусов у модели, оно и логично потому что у меня стоит редактирование по модели, подскажите, как можно сделать редактирование конкретного вкуса введите сюда описание изображения

Код:

@dp.callback_query_handler(lambda c: c.data.startswith('brandedit_'))
async def edit_taste(callback_query: types.CallbackQuery, state: FSMContext):
    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"m_{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('m_'))
async def show_item(callback_query: types.CallbackQuery, state: FSMContext):
    model = callback_query.data.split('_')[1]
    async with state.proxy() as data:
        data['model_edit'] = model
    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"te_{taste}"))
    await bot.send_message(callback_query.from_user.id, f"Выберите вкус модели {model}", reply_markup=markup)


class te_edit(StatesGroup):
    taste_edit = State()


@dp.callback_query_handler(lambda c: c.data.startswith('te_'))
async def taste_item(callback_query: types.CallbackQuery, state: FSMContext):
    taste = callback_query.data.split('_')[1]
    async with state.proxy() as data:
        model = data['model_edit']
    db.cur.execute("SELECT model, price, brang, photo_it, taste, availability FROM items WHERE taste = ? and model = ?",
                   (taste, model,))
    data = db.cur.fetchall()
    await bot.send_message(callback_query.from_user.id, f"Напишите новое название для вкуса: {taste}")
    await te_edit.taste_edit.set()


@dp.message_handler(state=te_edit.taste_edit)
async def process_model(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        taste = data['taste_edit'] = message.text
        model = data['model_edit']
        # name = сюда надо передать как-то name из вернего хэндлера
        await bot.send_message(message.chat.id, f"Название вкуса изменено на: {taste}, для моделиЖ {model}")
        await db.edit_model_liq(taste=taste, model=model)
        await state.finish()

Код БД:

async def edit_model_liq(model: str, taste: str):
    cur.execute("UPDATE items SET taste = ? WHERE model = ?", (taste, model,))
    db.commit()

Ответы (0 шт):