Пробую сделать бота магазин. В части кода с инлайн кнопками, начался какой то треш. Помогите.
@bot.message_handler(content_types=['text'])
def meswork(call):
if call.text.strip() == 'Перейти в каталог товаров':
markup1 = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton("Пица", callback_data='piza')
item2 = types.InlineKeyboardButton("Кофэ", callback_data='cofe')
item3 = types.InlineKeyboardButton("Сущиии", callback_data='pivo')
markup1.add(item1, item2, item3)
bot.send_message(call.chat.id, 'Выберете товар', reply_markup=markup1)
@bot.callback_query_handler(func=lambda call: True)
def work(call):
if call.data == 'piza':
print('pizaaa')
elif call.data == 'cofe':
print('cooofee')
elif call.data == 'susi':
print('susiiii')
work(call)
При таком коде, выдаёт такую ошбику:
File "F:\Раб. стол\pythonProject2\main.py", line 59, in meswork
work(call)
File "F:\Раб. стол\pythonProject2\main.py", line 53, in work
if call.data == 'piza':
^^^^^^^^^
AttributeError: 'Message' object has no attribute 'data'. Did you mean: 'date'?
Но если я делаю то, что он просит
@bot.message_handler(content_types=['text'])
def meswork(call):
if call.text.strip() == 'Перейти в каталог товаров':
markup1 = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton("Пица", callback_data='piza')
item2 = types.InlineKeyboardButton("Кофэ", callback_data='cofe')
item3 = types.InlineKeyboardButton("Сущиии", callback_data='pivo')
markup1.add(item1, item2, item3)
bot.send_message(call.chat.id, 'Выберете товар', reply_markup=markup1)
@bot.callback_query_handler(func=lambda call: True)
def work(call):
if call.date == 'piza':
print('pizaaa')
elif call.date == 'cofe':
print('cooofee')
elif call.date == 'susi':
print('susiiii')
work(call)
Получаю уже другую ошибку:
File "F:\Раб. стол\pythonProject2\main.py", line 53, in work
if call.date == 'piza':
^^^^^^^^^
AttributeError: 'CallbackQuery' object has no attribute 'date'. Did you mean: 'data'?
И получился замкнутый круг! Что делать???
Если нужно. вот код всей программы:
import telebot
from telebot import types
import sqlite3
from random import randint
keyboard1 = telebot.types.ReplyKeyboardMarkup(True)
bot = telebot.TeleBot('')
@bot.message_handler(commands=['start'])
def start(call):
connect = sqlite3.connect('bd')
cursor = connect.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS user_id(
id TEXT,
balance INTEGER
)''')
cursor.execute('''CREATE TABLE IF NOT EXISTS tovar(
name TEXT,
price INTEGER,
kolvo INTEGER
)''')
connect.commit()
item1 = types.KeyboardButton("Перейти в каталог товаров")
item2 = types.KeyboardButton("Пополнить баланс")
item3 = types.KeyboardButton("Узнать мой баланс")
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
markup.add(item1, item2, item3)
bot.send_message(call.chat.id, 'Добро пожаловать в мазагин багетыча', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def meswork(call):
if call.text.strip() == 'Перейти в каталог товаров':
markup1 = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton("Пица", callback_data='piza')
item2 = types.InlineKeyboardButton("Кофэ", callback_data='cofe')
item3 = types.InlineKeyboardButton("Сущиии", callback_data='pivo')
markup1.add(item1, item2, item3)
bot.send_message(call.chat.id, 'Выберете товар', reply_markup=markup1)
@bot.callback_query_handler(func=lambda call: True)
def work(call):
if call.date == 'piza':
print('pizaaa')
elif call.date == 'cofe':
print('cooofee')
elif call.date == 'susi':
print('susiiii')
work(call)