успевает обновляться?
По команде /start присылается сообщение с просьбой выбрать автора —> появляются две кнопки с авторами.
После выбора автора появляется сообщение с инлайн-кнопками выбрать вариант —> после выбора варианта присылается сообщение с просьбой подтвердить.
После подтверждения в бд идет поиск задания и потом присылается картинка с самим заданием. Бот ждет ответа пользователя и сверяет его с ответом из бд:
1. Ответ верный —> бот обновляет стейт с текущем заданием и прибавляет 1 —> присылает второе задание и так по кругу.
2. Ответ неверный —> бот просит подумать еще раз.
Проблема в том, что стейт (я так думаю) не успевает обновится и бот еще раз присылает картинку из бд с заданием 1, хотя должен присылать картинку с заданием 2. Что не так?
Код:
1. https://paste.aiogram.dev/anohecohor.py — процесс выбора варианта и все остальное
2. https://paste.aiogram.dev/pevaviqaxo.py — делается поиск задания
> Может же быть такое, что стейт не успевает обновляться? Может. Смотря, что ты делаешь
При верном ответе обновляю стейт прибавляя к текущему значению 1, после этого снова вызываю функцию получения задания. в первый раз он не обновляется, во второй и последующие все отлично
Что такое "data"?
data = await state.get_data()
Ты же понимаешь, что data — "снапшот" состояния на конкретный момент? Тут не в стейтах дело)
Если не понял моего сообщения, вставь этот кусок кода. Я думаю, поймёшь куда по контексту print(data.get("current_task"), (await state.get_data()).get("current_task")) await state.update_data(...) print(data.get("current_task"), (await state.get_data()).get("current_task"))
Обсуждают сегодня