Size: a a a

2020 December 25

ZR

Zhybanov Roman in Python KZ
Asset
Всем привет!

подскажите как вызвать ниже функцию из др функции?

@dp.message_handler(state=Form.branch)
async def choose_branch2(message: types.Message, state: FSMContext):
   async with state.proxy() as data:
       cid = message.chat.id
       data['branch'] = message.text
       print(data)
       reply_markup = {'keyboard': [['Test'], ['Test'], ['Test'], ['Test'], ['Test'], ['Test']], 'resize_keyboard': True}
       reply_markup = json.dumps(reply_markup)
       if message.text == 'eto test':
           await message.answer("Выберите пожалуйста test:", reply_markup=reply_markup)
           await Form.branch.set()
           await Form.next()

получаю ошибку:

line 85, in choose_branch2
   async with state.proxy() as data:
AttributeError: 'str' object has no attribute 'proxy'
Хммм, aiogram
источник

ZR

Zhybanov Roman in Python KZ
Вы StatesGroup инициализировали ?
источник

A

Asset in Python KZ
сори, если вызвать функцию так:
await choose_branch2(message='Test', state=Form.branch)

то ошибка такая:
AttributeError: 'State' object has no attribute 'proxy'
источник

A

Asset in Python KZ
Zhybanov Roman
Вы StatesGroup инициализировали ?
да, он пашет)
источник

ЭС

Эдуард Сидиропуло... in Python KZ
Asset
сори, если вызвать функцию так:
await choose_branch2(message='Test', state=Form.branch)

то ошибка такая:
AttributeError: 'State' object has no attribute 'proxy'
а, уже ближе
источник

ZR

Zhybanov Roman in Python KZ
Asset
да, он пашет)
Тогда не знаю, нету полного кода, не могу сказать в чем проблема
источник

ZR

Zhybanov Roman in Python KZ
Где-то месяц назад я писал код для одного человека с использованием aiogram и FSM, может что нибудь найдете нужное: https://repl.it/@ZhymabekRoman/DarkvioletElasticSemicolon#main.py
источник

ЭС

Эдуард Сидиропуло... in Python KZ
у класса State нет метода proxy
источник

ЭС

Эдуард Сидиропуло... in Python KZ
если залезть в aiogram
источник

A

Asset in Python KZ
Zhybanov Roman
Где-то месяц назад я писал код для одного человека с использованием aiogram и FSM, может что нибудь найдете нужное: https://repl.it/@ZhymabekRoman/DarkvioletElasticSemicolon#main.py
В коде нету вызова функции, моего кейса) В любом случае спасибо!
источник

A

Asset in Python KZ
Эдуард Сидиропуло
у класса State нет метода proxy
странно.. это ведь работает. Он ведь заходит и принтует  print(data)

async with state.proxy() as data:
       cid = message.chat.id
       data['branch'] = message.text
       print(data)
источник

ЭС

Эдуард Сидиропуло... in Python KZ
уверены что именно этот принт выводит data? а то как будто ошибка происходит до принта
источник

A

Asset in Python KZ
в моем случае принтуется:
убрал реальные значения )

FSMContextProxy state = 'Form:category', data = {'main_menu': 'ававава', 'branch': 'ававава', 'category': 'ававав'}
источник

ЭС

Эдуард Сидиропуло... in Python KZ
а вызов этого метода 1 раз происходит?
источник

A

Asset in Python KZ
2. Первый раз успешно все. 2-й из другой функции ошибка выше..
источник

ЭС

Эдуард Сидиропуло... in Python KZ
скорее всего 2я функция передает не те параметры в метод
источник

A

Asset in Python KZ
вот тут 2-й

@dp.callback_query_handler(lambda c: c.data, state='Form:quantity_and_price')
   async def process_callback_kb1btn1(callback_query: types.CallbackQuery):
       ski = 1550
       global quantity
       quantity = callback_query.data
       print(quantity)
       print(type(quantity))
       #await Form.quantity_and_price.set()
       #await Form.next()

       if quantity == 'Отменить позицию':

           await choose_branch2(message='Test', state=Form.branch)
источник

ЭС

Эдуард Сидиропуло... in Python KZ
а можете еще 1 вызов для примера?
источник

ZR

Zhybanov Roman in Python KZ
Asset
странно.. это ведь работает. Он ведь заходит и принтует  print(data)

async with state.proxy() as data:
       cid = message.chat.id
       data['branch'] = message.text
       print(data)
await state.update_data(branch=message.text)
источник

ZR

Zhybanov Roman in Python KZ
Zhybanov Roman
await state.update_data(branch=message.text)
user_data = await state.get_data()
print(user_data["branch"])
источник