У меня список заказов которые пользователь когда либо создавал, нужно реализовать функции редакции текста этих заказов. При нажатие на кнопку 'edit' пользователь может написать новое сообщение которые запишется вместо раннего. Приложил код как фундамент с чем работаю.
db
#karkas
async def edit_order_text(order_text, userid):
cur.execute("UPDATE orders SET orderText = ? WHERE userId = ?", (order_text, userid))
async def list_orders(message):
cur.execute("SELECT * FROM orders WHERE userId=?", (message.from_user.id,))
user = cur.fetchall()
if user:
for i in user:
await message.answer(text=f'order #{i[2]}\n\n'
'state: OPEN\n\n'
f'text: <b>{i[3]}</b>', parse_mode='HTML',
reply_markup=InlineKeyboardMarkup(inline_keyboard=[
[
InlineKeyboardButton(text='edit', callback_data='edit_order')
]
]))
await message.answer(text='no orders.')
handler
@orders_router.callback_query(F.data == 'edit_order')
async def edit_order(callback: CallbackQuery, state: FSMContext):
await callback.message.answer('pass text below.')
await state.set_state(Form.text_order)
@orders_router.message(Form.text_order)
async def form_order_text(message: Message, state: FSMContext):
await state.update_data(order_text=message.text)
order_data = await state.get_data()
await edit_order_text(message, order_data['order_text'])