Answer the question
In order to leave comments, you need to log in
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)
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)
Answer the question
In order to leave comments, you need to log in
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 questionAsk a Question
731 491 924 answers to any question