Бот телеграмм Python
Хочу сделать одобрение и отклонение предложений. Спросил у нейронки как это можно сделать, на что она дала ответ:
1234567
# Обработчик кнопки "🟢Одобрить"
@bot.callback_query_handler(func=lambda call: call.data == 'approve')
def approve(call):
idea_id = call.message.reply_to_message.split(' ')[1]
update_idea_status(idea_id, '🟢Одобрено')
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=f"Предложение {idea_id} одобрено.")
send_next_idea(call.message.chat.id)
в этой функции возникает ошибка
AttributeError: 'NoneType' object has no attribute 'split'
жалуется на строчку "idea_id = call.message.reply_to_message.split(' ')[1] "
Скажите, как можно это заменить, чтобы делало то же самое?
Библиотеки: telebot, sqlite3
По дате
По Рейтингу
"call.message.reply_to_message" возвращает None, оно и вызывает ошибку при выполнении метода split().
Можно попробовать использовать "call.message.text" для извлечения "idea_id":
12345678
# Обработчик кнопки "🟢Одобрить"
@bot.callback_query_handler(func=lambda call: call.data == 'approve')
def approve(call):
# Предполагаем, что idea_id находится в тексте сообщения, например: "Предложение 12345"
idea_id = call.message.text.split(' ')[1]
update_idea_status(idea_id, '🟢Одобрено')
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=f"Предложение {idea_id} одобрено.")
send_next_idea(call.message.chat.id)
Если idea_id находится в другом месте в тексте сообщения, тебе надо изменить индекс в split() или использовать другой метод для извлечения idea_id.
Это баг
Исо