如何在aiogram 3.0,sqlite中实现订单修订功能?

How to implement the order revision function in aiogram 3.0, sqlite?

提问人:nerduz 提问时间:11/9/2023 更新时间:11/9/2023 访问量:12

问:

我有一个用户曾经创建的订单列表,我需要实现编辑这些订单文本的功能。通过单击“编辑”按钮,用户可以编写一条新消息,该消息将被记录下来,而不是之前的消息。我附上了代码作为我正在使用的基础。

分贝

#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.')

处理器

@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'])

enter image description here

SQLite 的AIOGRAM

评论


答: 暂无答案