Обновление call.data, pyTelegramBotAPI, inline клавиатура

Почему этот код не работает?

@bot.callback_query_handler(func=lambda call: True)
def answer(call): 
    if call.data == '1':
        bot.send_message (call.message.chat.id, "Assigning bot as a channel administrator: \n1) Open chanell settings \n2) Open 'Administrators' tab \n3) Click 'Add administrator' and paste @DGolovinfirst_bot \nBot connected!")

elif call.data == '2':
    @bot.callback_query_handler(func=lambda call: True)
    def NumPerWeekData(call): 
        NumPerWeek = 0
        markup2 = types.InlineKeyboardMarkup(row_width=2)
        itmbtn5 = types.InlineKeyboardButton(text='3', callback_data='5')
        itmbtn6 = types.InlineKeyboardButton(text='5', callback_data='6')
        itmbtn7 = types.InlineKeyboardButton(text='7', callback_data='7')
        itmbtn8 = types.InlineKeyboardButton(text='14', callback_data='8')
        itmbtn9 = types.InlineKeyboardButton(text='Custom', callback_data='9')
    
        markup2.add (itmbtn5, itmbtn6, itmbtn7, itmbtn8, itmbtn9)
        bot.send_message (call.message.chat.id, 'Select number of posts per week:', reply_markup=markup2)

        if call.data == '5':
            NumPerWeek = 3
        elif call.data == '6':
            NumPerWeek = 5
        elif call.data == '7':
            NumPerWeek = 7
        elif call.data == '8':
            NumPerWeek = 14

        bot.send_message (call.message.chat.id, f"Selected: {NumPerWeek} 

Проблема возникает с частью кода под 'elif call.data == 2:', при создании новой клавиатуры я добавил эту часть кода, чтобы обновить call.data:

@bot.callback_query_handler(func=lambda call: True)
def NumPerWeekData(call): 

Но после этого кнопка вообще перестала работать. Отсюда вопрос: как мне обновить call.data так, чтобы кнопка работала, что не так с кодом?


Ответы (0 шт):