AIOGRAM. Зависает на обработке клика на кнопку, если этих этапов опроса 2 или больше. Подскажите, что я пишу не так

Рейтинг: 0Ответов: 0Опубликовано: 28.01.2023

Пишу бота, который возвращает варианты ответов на вопросы, которые ввел пользователь. Сначала идет текстовый вопрос, затем вопрос с кнопками. Если добавляю больше 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()

Ответы

Ответов пока нет.