如何触发下一个状态处理程序aiogram 3.0.0b

问题描述 投票:0回答:0

我有以下代码(Aiogram 3.0.0b):

from ..forms import *

@router.message(Command(commands='register_journal'))
async def initiate_register_journal_command(message: types.Message, state: FSMContext):

    current_user_id = message.from_user.id
    await message.reply(text="Ініціюю реєстрацію взводу")
    # await asyncio.sleep(3)
    await message.reply(text=JournalForm.label)
    await state.set_state(JournalForm.current_user_id)
    await state.update_data(current_user_id=current_user_id) #worked fine
    await state.set_state(JournalForm.name)



@router.message(JournalForm.name) # , CurrentUserFilter(JournalForm.current_user_id))
async def handle_registered_journal_data(message: types.Message, state: FSMContext):
    name = message.text

    if not Journal.objects.get(name=name):
        state.set_state(JournalForm.name)
        state.update_data(name=name)
        group_id = message.chat.id
        add_journal(name, group_id)
    else: message.reply(text="Error: For the platoon's assignment the journal has already been created")

表格是:

class JournalForm(StatesGroup):

    current_user_id = State()
    name = State()

    label = "Platoon number"
    сallback_text = "A journal of visits to the platoon has been created!"
    on_registration_fail_text = "An error occurred while registering a platoon, please try again later"

问题是,当我发送我的排名称时,不会触发 handle_registered_journal_data。 initiate_register_journal_command 似乎工作得很好。

python forms telegram-bot fsm aiogram
© www.soinside.com 2019 - 2024. All rights reserved.