Данные в переменной не обновляются при использовании в другом декораторе (надеюсь правильно сформулировал).
@dp.message_handler()
async def echo(message: types.Message, state: FSMContext):
if message.text == 'запрос':
# тут происходит запрос в БД и в переменную numbers выгружаются номера
async with state.proxy() as take_user_data:
take_user_data["numbers"] = all_numbers
await Edit.waiting_Number.set()
await bot.send_message(message.chat.id, 'Ok, напиши номер.')
@dp.message_handler(state = Edit.waiting_Number)
async def take(message: types.Message, state: FSMContext):
async with state.proxy() as take_user_data:
take_user_data["choose_number"] = message.text
# сравниваем номер который ввел пользователь с номером из базы, если есть совпадение, то записываем его
for res in take_user_data["numbers"]:
if int(take_user_data['choose_number']) == int(res):
catch += res
при первом заходе по слову "запрос" выгружается например 10 номеров (от 1 до 10) из базы и если пользователь пишет номер который есть в take_user_data["numbers"] (от 1 до 10), то все ок.
Но если после этого добавить в базу еще одну цифру или несколько (например до 15. В итоге получится от 1 до 15 в БД), то в функции def echo в take_user_data["numbers"] будут все номера от 1 до 15, а после перехода по состоянию Edit.waiting_Number в take_user_data["numbers"] останутся номера из самого первого захода (от 1 до 10).
Подскажите как использовать новые данные в take_user_data["numbers"] в функции def take.
Хочу обойтись без global