но в том стейте где они создавались значения выводятся
await state.get_state() так получаешь стейт, а потом данные
Да но это при вызове другого стейта выдаёт его данные а не прошлого Ну или я чёт не правильно делаю
Это как? Можно подробнее или часть кода?
async with state.proxy() as proxy: ls = "" proxy.setdefault("answer1",ls) так сохраняю async with state.proxy() as data: data['answer1'] += f"\n{message.text}" await message.answer(f"Text: {data['answer1']}") так добавляю и вывожу в том же стейте но так не выходит в другом ??? start_answer = State() first_answer = State() эти стейты первый я вызываю несколько раз а второй в конце и в нем нечего (
Давайте код целиком, пожалуйста
class TextСonditions(StatesGroup): start_answer = State() first_answer = State() async def Text_in(message: types.Message, state: FSMContext): async with state.proxy() as proxy: ls = "" proxy.setdefault("answer1",ls) await TextСonditions.start_answer.set() async def test_text(message: types.Message, state: FSMContext): await message.answer(message.text) async with state.proxy() as data: data['answer1'] += f"\n{message.text}" await message.answer(f"Text: {data['answer1']}") async def TextInFSM(message: types.Message, state: FSMContext): main_text = await state.get_data() print(main_text)#выводит {} await message.answer(main_text) def handler_client(db : Dispatcher): dp.register_message_handler(Text_in,commands=["start"],state=None) dp.register_message_handler(test_text,state=TextСonditions.start_answer) dp.register_message_handler(TextInFSM,state=TextСonditions.first_answer) вот
Что ты хотел сделать?
у меня первый стейт ловит текст и сохраняет его но в конце нужно ввести доп текст отдельно чтобы он не поймал текст и не сохранил в первый использую другой стейт
Использовуй другой ключ, у юзера, одна память
Не выводи через get_data()
а как не ловить текст в первый ключ
Ловить в другой
как ? )))))) он же ловит весь текст что ему скинуть и как он поймет какой нужно сохранить и в этот момент завершить
Дружище, я выше написал в чем у тебя проблема...
Это уже логика, от тебя зависит, подумай
with state.proxy читай значение data[ключ] так тоже делал
Ну иначе и не нужно. Проблема в чем именно? В том что выводит пустую строку, правильно?
Обсуждают сегодня