Я использую рекурсивную функцию, которая записывает по очереди данные, после чего должна добавить заполненную категорию в базу данных.
async def compilate_info(message, category=None, name_product=None, description_product=None, price = 0):
if not category:
category = Form.take_all_info.set()
print(category)
await message.answer(f"Введите категорию продукции")
await compilate_info(message, category=category)
elif not name_product:
name_product = Form.take_all_info.set()
await message.answer(f"Введите название продукции")
await compilate_info(message, category=category, product=name_product)
print(name_product)
elif not description_product:
description_product = Form.take_all_info.set()
await message.answer(f"Введите описание продукции")
print(description_product)
elif price == 0:
new_price = Form.take_all_info.set()
await message.answer(f"Введите стоимость продукции")
new_price_int = sync_to_async(int)(new_price)
price += new_price_int
print(price)
else:
await message.answer('Продукция успешно добавлена!')
В чём мой вопрос:
category = Form.take_all_info.set()
На этом этапе бот не ожидает ввода с клавиатуры, а идёт дальше по списку. Как сделать так, чтобы бот ожидал ввода с клавиатуры?
Я делал подобное на TelegramBotAPI, но тут не получается...
Вот так выглядит функция к которой я обращаюсь:
@dp.message_handler(state=Form.take_all_info)
async def process_info(message: types.Message, state: FSMContext):
take_info = message.text
await state.finish()
Мне главное, чтобы просто изменился message.text, с которым я буду работать