AIOGRAM. Зависает на обработке клика на кнопку, если этих этапов опроса 2 или больше. Подскажите, что я пишу не так
Пишу бота, который возвращает варианты ответов на вопросы, которые ввел пользователь. Сначала идет текстовый вопрос, затем вопрос с кнопками. Если добавляю больше 1 вопроса с кнопками, бот зависает на нажатии кнопки варианта ответа и все. Если вопрос 1 то все нормально. В чем причина? Подскажите пожалуйста
import json
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command
from aiogram.types import ReplyKeyboardRemove
from keyboards.inline.choice_but_start_test import vidApparat
from keyboards.inline.choice_but_start_test1 import crash
from loader import dp
from aiogram import types
from states import CallbackOnStart
@dp.message_handler(Command('onstarttest'))
async def on_start_test(message: types.Message):
id = message.from_user.id
with open('users_test_one.json', encoding='utf-8') as json_file:
data = json.load(json_file)
await message.answer("Проведение ТО 1")
await message.answer('Вопрос №1\nТО какого аппарата проводится?\nНапишите как в маршрутном листе', reply_markup=ReplyKeyboardRemove())
await CallbackOnStart.Q1.set()
@dp.message_handler(state=CallbackOnStart.Q1)
async def see(message: types.Message, state: FSMContext):
b = vidApparat()
answer = message.text
await state.update_data(see=answer)
await message.answer(text="Вопрос №2\nВнешний вид аппарата в норме?\nВыберите ответ из предложенных",
reply_markup=b)
await CallbackOnStart.Q2.set()
# Если добавляю этот участок кода, то бот зависает -----------------
@dp.message_handler(state=CallbackOnStart.Q2)
async def seew(message: types.Message, state: FSMContext):
b = crash()
answer = message.text
await state.update_data(seew=answer)
await message.answer(text="Вопрос №3\nВнешний вид аппарата точно в норме&&&&?\nВыберите ответ из предложенных",
reply_markup=b)
await CallbackOnStart.Q3.set
# -------------------------------------------------------------------
@dp.callback_query_handler(state=CallbackOnStart.Q3)
async def end(call: types.Message, state: FSMContext):
answer = call.data
await state.update_data(full_name=call.from_user.full_name)
await state.update_data(repost=answer)
data = await state.get_data()
user = {call.from_user.id: data}
text = []
for i in data:
text.append(f'{data[i]}\n')
await call.message.answer(text="Отчет по ТО 1:", reply_markup=ReplyKeyboardRemove())
await call.message.answer('\n'.join(text))
with open('users_test_one.json', encoding='utf-8') as file:
data = json.load(file)
data.update(user)
with open('users_test_one.json', 'w', encoding='utf-8') as outfile:
json.dump(data, outfile, indent=5, ensure_ascii=False)
await state.finish()
from aiogram.dispatcher.filters.state import StatesGroup, State
class CallbackOnStart(StatesGroup):
Q1 = State()
Q2 = State()
Q3 = State()
Q4 = State()
Q5 = State()
Q6 = State()
Q7 = State()
Источник: Stack Overflow на русском