如何在不重置数据的情况下重置 aiogram FSM 中的状态

How to reset state in aiogram FSM without resetting data

我正在使用 Python 3.9.7 和 aiogram 2.16 开发电报机器人,在我的函数结束时我想重置用户状态 而不删除存储的数据.

我尝试使用 state.finish() 但此方法会从存储中删除所有保存的数据 这是代码:

if user_data.get("chosen_groups") == "fired":
    # some code here
    await state.finish()

我可以使用State.state.set()将用户设置为初始阶段,但是这样会降低代码的可读性,增加出错的概率。 如何在不删除数据的情况下将用户设置为初始状态?

如果您只需要在不丢失数据的情况下重置状态,请使用 await state.reset_state (with_data = False)。

您可以在 aiogram documentation

中阅读相关内容