Advertisement
ivandev

formtask

Oct 23rd, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.87 KB | None | 0 0
  1. from aiogram import types
  2. from aiogram.dispatcher import FSMContext
  3. from aiogram.dispatcher.filters import Command
  4.  
  5. from loader import dp
  6. from states.form import Form
  7.  
  8.  
  9. # задает первый вопрос без указа
  10. @dp.message_handler(Command("form"), state=None)
  11. async def enter_form(message: types.Message):
  12.     await message.answer("Вы начали заполнение формы\n"
  13.                          "Введите ваше Имя")
  14.  
  15.     await Form.first()
  16.  
  17.  
  18. @dp.message_handler(state=Form.Q1)
  19. async def answer_q1(message: types.Message, state: FSMContext):
  20.     answer = message.text
  21.  
  22.     # Передаем ответ в формате словаря
  23.     await state.update_data(
  24.         {"Name": answer}
  25.     )
  26.  
  27.     await message.answer("Введите ваш Email")
  28.  
  29.     await Form.next()
  30.  
  31.     @dp.message_handler(state=Form.Q2)
  32.     async def answer_q2(message: types.Message, state: FSMContext):
  33.         answer = message.text
  34.  
  35.         # Передаем ответ в формате словаря
  36.         await state.update_data(
  37.             {"Email": answer}
  38.         )
  39.  
  40.         await message.answer("Введите ваш номер телефона")
  41.  
  42.         await Form.next()
  43.  
  44.  
  45. @dp.message_handler(state=Form.Q3)
  46. async def answer_q3(message: types.Message, state: FSMContext):
  47.     answer = message.text
  48.     # Достаем переменные из словаря
  49.     data = await state.get_data()
  50.     name = data.get("Name")
  51.     email = data.get("Email")
  52.     phone = answer
  53.  
  54.     await message.answer("Привет ты ввел следующие данные!\n"
  55.                          f"Имя - {name}\n"
  56.                          f"Email - {email}\n"
  57.                          f"Телефон - {phone}"
  58.                          )
  59.  
  60.     # Глушим машину состояния
  61.     await state.finish()
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement