Неправильно работает Телеграм - бот в связке с SQL
user_data = {}
class User:
def __init__(self, first_name):
self.first_name = first_name
self.last_name = ''
self.school = ''
self.city = ''
@bot.message_handler(commands=['reg'])
def send_welcome(message):
msg = bot.send_message(message.chat.id, 'Введите Имя')
bot.register_next_step_handler(msg, process_first_name_step)
def process_first_name_step(message):
try:
user_id = message.from_user.id
user_data[user_id] = User(message.text)
msg = bot.send_message(message.chat.id, "Введите фамилию")
bot.register_next_step_handler(msg, process_lastname_step)
except Exception as e:
bot.reply_to(message, 'oooops')
def process_lastname_step(message):
user_id = message.from_user.id
user = user_data[user_id]
user.last_name = message.text
sql = "INSERT INTO userss (first_name, last_name, user_id, school) VALUES (%s, %s, %s, %s)"
val = (user.first_name, user.last_name, user_id, school)
cursor.execute(sql, val)
db.commit()
msg = bot.send_message(message.chat.id, 'Введите номер школы')
bot.register_next_step_handler(process_school,msg)
def process_school(message):
user_id = message.from_user.id
user = user_data[user_id]
user.school = message.text
sql = "UPDATE userss (first_name, last_name, user_id, school) VALUES (%s,%s,%s,%s)"
val = (user.first_name, user.last_name, user_id, school)
cursor.execute(sql,val)
db.commit()
bot.send_message(message.chat.id, "Вы успешно зарегистрированны!", reply_markup=kb.keyboardreg)
Помогите понять, почему не работает.
Ответы (1 шт):
Автор решения: Mikhail Sharaborin
→ Ссылка
Покажите ошибку полностью.
Скорее всего у вас ошибка в bot.register_next_step_handler(process_school, msg)
Первый параметр должен быть message, а вы передаете функцию.
bot.register_next_step_handler(msg, process_school)