@Tamskiy

Как сделать, чтобы машина состояний не срабатывала, если пользователь уже есть в бД?

Надо, чтобы машина состояний не срабатывала, а сразу предоставляла меню, если пользователь уже есть в бд. Сейчас при каждом нажатии на кнопку старт машина состояний срабатывает заново.
Направьте в нужном направлении.
Собственно сам код системы регистрации:
@dp.message_handler(commands=['help'])
async def help_command(message: types.Message):
    await message.reply(text=HELP_COMMAND)

@dp.message_handler(commands=['start'])
async def start_command(message: types.Message):
    await message.reply('Привет мы еще не знакомы ?,\nКак тебя зовут')
    await reg.name.set()

@dp.message_handler(state=reg.name)
async def state1(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['name'] = message.text
    await reg.next()
    await message.reply(f' Сколько тебе лет')


@dp.message_handler(state=reg.age)
async def state2(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['age'] = message.text
    await reg.next()
    await message.reply(f'Тебе осталось только написать свой номер =)')


@dp.message_handler(state=reg.phone)
async def state3(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['phone'] = message.text
    await barber_db.sql_add_command(state)
    await state.finish()
    await bot.send_message(chat_id=message.from_user.id,
                         text="Добро пожаловать",
                         parse_mode="HTML",
                         reply_markup=mainMenu)
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MaxKozlov
Очевидно что ещё в обработке /start ты должен пошарить в своей barber_db
этого юзера.
А искать надо по предварительно сохранённому там message.from_user.id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы