You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在aiogram FSM中删除最后一步的价格提示消息?

解决aiogram FSM最后一步无法删除提示消息的问题

核心问题是你进入price状态时发送的「Введите максимальную цену:」这条消息没有保存ID,导致后续处理用户输入时找不到它来删除。只需要把这条消息的ID存在FSM的状态数据里,就能在用户输入后删除它。

修改步骤:

  1. 保存提示消息ID到FSM状态
    修改floor_choose函数,发送提示消息后把消息ID存入state:
async def floor_choose(callback: types.CallbackQuery,
                       state: FSMContext):
    async with state.proxy() as data:
        data['floor'] = callback.data
        data['heating'] = None  # заполнитель для таблицы, пока не написана функция
    await callback.message.delete()
    await FSMAdmin.next()
    # 发送提示消息并保存它的ID到state
    prompt_message = await callback.message.answer('Введите максимальную цену:')
    async with state.proxy() as data:
        data['prompt_msg_id'] = prompt_message.message_id
  1. 在价格处理函数中删除提示消息
    修改max_price_choose函数,从state中取出消息ID并删除,同时增加异常处理避免报错:
async def max_price_choose(message: types.Message,
                           state: FSMContext):
    async with state.proxy() as data:
        try:
            data['price'] = int(message.text)
        except ValueError:
            await message.reply('Введи число нормально')
            return  # 让用户重新输入,不执行后续逻辑
        
        # 删除之前的提示消息
        try:
            await bot.delete_message(chat_id=message.chat.id, message_id=data['prompt_msg_id'])
        except Exception:
            pass  # 消息可能已被用户手动删除,忽略异常

    await message.answer(
        f"Выбранные параметры:\nГород: {data['city']}\nРайон: {data['district']}"
        f"\nКоличество комнат: {data['rooms']}\nЭтаж: {data['floor']}\nМаксимальная цена: {data['price']}")
    await message.delete()
    try:
        await sql_add_users_flat(state)
        await message.answer('Выбор сохранен')
    except Exception:
        await message.answer('Произошла ошибка, изменения не сохранены')
    await state.finish()

这样处理后,用户输入价格后,那条提示消息就会被自动删除了。

内容的提问来源于stack exchange,提问作者holavas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 12:15:32