Всем привет, в ходе разработки меню администратора(через telegram чат) задумался над тем,что админ хоть и может заносить/добавлять какие-то данные,но было бы круто если-бы он мог их так-же удалять,а не лезть каждый раз SQLite и делать все вручную.Так вот, ниже приведу код, которым и пытался реализовать данную задачу
@dp.message_handler(text="Удалить из базы данных")
async def sql_del(message: types.Message):
if message.from_user.id == Admin_Id:
read = await sqlite_db.sql_read2()
for ret in read:
await bot.send_message(message.from_user.id, text=f'{ret[:]}', reply_markup=InlineKeyboardMarkup().
add(InlineKeyboardButton(f'Удалить {ret[:]}', callback_data=f'del {ret[:]}')))
@dp.callback_query_handler(lambda x: x.data and x.data.startswith('del '))
async def del_callback_run(call: types.CallbackQuery):
await sqlite_db.sql_delete(call.data.replace('del ', ''))
await call.answer(text=f'{call.data.replace("del ", "")} удалено.', show_alert=True)
вот мои "кнопки" при нажатии которых я вроде как создаю динамическую инлайн клавиатуры,где есть возможность удалить данные,которые я вывел с ранжирования,однако,когда я вызываю ф-ию sql_delete ( ниже привожу ее)
async def sql_delete(data):
cur.execute('DELETE FROM menu WHERE variable == ? ', (data,))
base.commit()
ничего по итогу не удаляется... Как бы все "вроде-бы" прекрасно отрабатывает и создается(клавиатура и show_alert отрабатывает) и ошибок в консоли тоже нету,но не понимаю почему не получается удалить данные.
На просторах интернета находил такие варианты с удалениями:
'DELETE FROM menu WHERE variable=(?)'
и такой вариант
DELETE FROM menu
WHERE variable= 'data';
в общем не понимаю/вижу,что я не так сделал.Буду очень благодарен,если вы укажите на мою ошибку(и).
Заранее спасибо