Как прервать выполнение текущей функции?

aiogram 3.13.1, python 3.11.0

Код ниже. Он генерирует картинки через враппер, затем выводит клавиатуру, callback которой затем отправляет нужную картинку. Как сделать так, чтобы функция останавливалась после выполнения return message.answer("", reply_markup=kb), чтобы остался активен только callback и можно было заново прописать команду или ввести другую. Я что-то не вразумею пока

Без разницы в каком положении последняя строка с ответом. await или return. Функция просто продолжается и не закончится, постоянно в цикле. Нельзя другие команды обработать

@router.message(
        StateFilter(Reg.name)
)
async def character_card(message: Message,
                           state: FSMContext,
) -> None:  
    await state.update_data(name=message.text)
    data = await state.get_data()
    uid = data["name"]
    await message.bot.send_chat_action(
    chat_id=message.chat.id,
    action=ChatAction.TYPING
    )
    async with starrailcard.Card(save=True, remove_logo=True) as card:
        try:
            
            await message.answer("")
            await card.set_lang("ru")
            data1 = await card.create(uid=uid, style=2, force_update=True)
            key_id = data1.get_charter()
            kb = get_some_kb(key_id)
            return message.answer("", reply_markup=kb)
        except KeyError:
            print("card is not ok")
            return message.answer("")
        

callback у меня такой, поэтому state не очищаю (не знаю как без очистки state сделать рабочими кнопки)

@router.callback_query(
    StateFilter(Reg.name)
)
async def send_generated_image(call: CallbackQuery, state: FSMContext) -> None:
        data = await state.get_data()
        uid = data["name"]
        data2 = call.data
        print(data2)
        photo_file = FSInputFile(path=f"ПУТЬ_К_КАРТИНКЕ/{uid}/{call.data}.png")
        await call.message.answer_photo(photo=photo_file) 

Ответы (0 шт):