@Corn385

Как передать в машину состояния данные aiogram?

Имеется данная функция:
async def nbv(message):
	for hus in cur.execute(f'SELECT name FROM cathlete WHERE id = ?', (message.from_user.id,)).fetchall():
		if message.text == hus[0]:
			await other.cm_start(message)

Суть заключается в том, что по введенному слову в чат тг, она проверяет наличие такого же слова в бд. Если такое слово находится то она перенаправляет к другой функции, которая активирует машину состояния:

class FSMAdmin(StatesGroup):
	names = State()
	id_tg = State()
	all_game = State()
	winners = State()

async def cm_start(message : types.Message):
	await FSMAdmin.all_game.set()
	await message.answer('Введите количество игр, которое вы сыграли:')
	async with state.proxy() as data:
		data['names'] = message.text #тут должно передаться слово, которое мы получили из прошлой функции

async def load_win(message : types.Message, state: FSMContext):
	async with state.proxy() as data: 
		data['id_tg'] = message.from_user.id
		data['all_game'] = message.text
	await FSMAdmin.next()
	await message.answer('Введите количество побед:')

async def load_lose(message : types.Message, state: FSMContext):
	async with state.proxy() as data:
		data['winners'] = message.text
	async with state.proxy() as data:
		await message.answer(str(data))
	await state.finish()


суть в том, что выводит:
FSMContextProxy state = 'FSMAdmin:winners', data = {'id_tg': 1031222801, 'all_game': '10', 'winners': '6'}
Но почему то не добавляется в этот перечень "names"
Пробовал по разному, но никак не получается передать слово из первой функции в значение переменно names
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы