Друзья, помогите с первым ботом! Такая задачка: бот выдаёт список записей из бд. Под каждой записью кнопка сменить ID и удалить запись. С удалением как-то всё просто, а вот с редактированием не могу разобраться из-за нехватки знаний.
Кусок кода:
# Редактирование ID:
@dp.callback_query_handler(lambda callback: callback.data and callback.data.startswith('edit_id_'))
async def edit_callback_run(callback: types.CallbackQuery):
client_id = int(callback.data.replace('edit_id_', ''))
@dp.message_handler(lambda message: message.isDigit())
async def get_new_id(message):
print(message)
# Удаление анкеты
@dp.callback_query_handler(lambda callback: callback.data and callback.data.startswith('del_'))
async def del_callback_run(callback: types.CallbackQuery):
client_id = int(callback.data.replace('del_', ''))
await sqlite_db.sql_delete(client_id)
await callback.answer(text=f'Анкета {client_id} удалена.', show_alert=True)
# Список анкет
@dp.message_handler(lambda message: 'Список' in message.text)
async def show_list(message: types.Message):
if message.from_user.id not in ADMINS_ID:
await message.reply('У Вас нет доступа.')
return
for client in await sqlite_db.sql_read():
await message.answer(
text=f'ID: {client[0]}\nURL: {client[1]}\nКол-во человек: {client[2]}\nГород: {client[3]}\nДаты: {parse_date_to_str(client[4])} - {parse_date_to_str(client[5])}\nЗаметка: {client[6]}',
reply_markup=InlineKeyboardMarkup().row(
InlineKeyboardButton('Сменить ID', callback_data=f'edit_id_{client[0]}'),
InlineKeyboardButton('Удалить', callback_data=f'del_{client[0]}')
)
)
Внешне это хотелось бы видеть так:
Т.е. Видет анкету, нажимаем смена ID, в поле ввода вводим новый ID, потом Enter и все счастливы.
Но ещё хотелось бы учесть, что в самом низу у меня ловятся всё неизвестное таким образом:
# Неизвестные команды
@dp.message_handler()
async def echo_send(message: types.Message):
await message.answer('Неизвестная команда.')
await message.delete()