@maximsum
Я это я

Как не допустить такую ошибку?

У меня частичка кода
async def withdrawal_price_handler(message: types.Message, state: FSMContext):
    if message.text.isnumeric():
        global price2
        price = int(message.text) * 10
        price2 = int(message.text)
        bill = bil(price)
        cur.execute(f"UPDATE users SET bill = '{bill}' where user_id = {message.from_user.id}")
        await message.answer(f'Отправьте {price} p на номер +79534482374 c коментарием **`{bill}`**\n\n❗️Без отправки комментария бот не увидит ваш перевод❗️',reply_markup=backing,parse_mode="Markdown")
        await state.finish()
    else:
        await message.answer('*Такого варианта нет.*',parse_mode="Markdown")
        await message.answer('*Введите кол-во билетов:*',parse_mode="Markdown")
def bil(pri):
    bill = api.bill(price=pri)
    return bill

когда 1 пользователь сделал активный платеж то 2 пользователь после введения кол-во билетов вылезает ошибка
bill = bil(price)
  File "c:\Users\teter\OneDrive\Рабочий стол\5k project\main.py", line 337, in bil
    bill = api.bill(price=pri)
  File "C:\Users\teter\AppData\Local\Programs\Python\Python310\lib\site-packages\SimpleQIWI\Session.py", line 106, in bill
    raise OverridingEx('Overriding bill!')
SimpleQIWI.Errors.OverridingEx: Overriding bill!

Пишу на aiogram библиотека для киви SimpleQiwi
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
1. global price2
Глобальные переменные - хороший способ огрести проблем при одновременном доступе нескольких пользователей. Они работают только если обращается один пользователь за раз.
2. cur.execute(f"UPDATE
Никогда не создавай SQL запросы через f-строки, используй подстановку параметров.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект