S
S
Studentka19962021-05-29 17:50:45
Python
Studentka1996, 2021-05-29 17:50:45

How to properly execute a function?

Hello.
I want to understand why it is impossible to register a function OUTSIDE the decorator and call it INSIDE the decorator...

Error: ERROR: root: Error: class NameError

What's wrong?

def func(chat_id):
    if len(conn_DB.rows_Korzina(str(chat_id))) > 1:
        bot.send_message(str(chat_id), text = f'В корзине: *{len(conn_DB.rows_Korzina(message.chat.id))}* товар(а) на *сумму {"%.2f" % float(conn_DB.summ())} руб.*',
          parse_mode = "Markdown", reply_markup = buttons.korz_keyb)



#Декоратор (обработчик сообщений) кастомной кливиатуры, message передаётся для того, чтобы бот дал ответ
@bot.message_handler(func = lambda msg: True)
def stdmenu_msg(message):
    if 'Корзина \U0001f6d2' in message.text or message.text == '/basket':
        if conn_DB.rows_Korzina(message.chat.id) == []:
            bot.send_message(message.chat.id, '*Корзина пуста*. Добавьте из списка меню (раздел "Меню" или команда /menu)', parse_mode = "Markdown",
                reply_markup = buttons.Main_menu(message.chat.id))
        else: #Создание инлайн меню для вывода в корзине юзера. Удалить или изменить кол-во товара в корзине
            func(message.chat.id)


buttons.py

korz_keyb = types.InlineKeyboardMarkup(row_width = 2)
order = types.InlineKeyboardButton(f'\U00002705 Оформить заказ', callback_data='Заказать')
korz_keyb.add(types.InlineKeyboardButton('\U0000274C Очистить', callback_data='Очистить'),
    types.InlineKeyboardButton('Обновить', callback_data='Обнов_Корз'), order)

PS Googled the error, all modules are connected :)

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Studentka1996, 2021-05-29
@Studentka1996

I forgot to change message.chat.id to chat_id

bot.send_message(str(chat_id), text = f'В корзине: *{len(conn_DB.rows_Korzina(message.chat.id))}* товар(а) на *сумму {"%.2f" % float(conn_DB.summ())} руб.*',
          parse_mode = "Markdown", reply_markup = buttons.korz_keyb)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question