0

Aiogram. Im getting a "message" is not defined error, and I understand why, but when I add message: types.Message to my func args it now needs 2 arguments but my func inly gets one, so what do i do?

@dp.callback_query_handler()
async def callbac_handler(callback: types.CallbackQuery):
    
    if callback.data == 'admin_search':
        await bot.send_message(message.chat.id, ' Введите ID или @username пользователя:') #  admin_search)
        adm_srch.set()
    elif callback.data == 'admin_rass':
        await bot.send_message(message.chat.id, ' Отправьте фото с текстом рассылки:') # admin_rass)
        adm_rass.set()
    elif 'admin_balance' in callback.data:
        await bot.send_message(message.chat.id, ' Введите айди и новый баланс пользователя:') #admin_balance)
        adm_bal.set()
    elif 'admin_ban' in callback.data:
        cur.execute('UPDATE users SET status = (?) WHERE userid = (?);', ('banned', call.data.split('-')[1],))
        conn.commit()
        await bot.send_message(message.chat.id, 'Пользователь заблокирован.')

I want to define message

1 Answers1

0

You should use callback.message.chat.id instead of message.chat.id since the message object is not directly available in the callback handler. The CallbackQuery object has a message attribute that you can use. Here's the modified code:

@dp.callback_query_handler()

async def callbac_handler(callback: types.CallbackQuery):

if callback.data == 'admin_search':
    await bot.send_message(callback.message.chat.id, ' Введите ID или @username пользователя:') #  admin_search)
    adm_srch.set()
elif callback.data == 'admin_rass':
    await bot.send_message(callback.message.chat.id, ' Отправьте фото с текстом рассылки:') # admin_rass)
    adm_rass.set()
elif 'admin_balance' in callback.data:
    await bot.send_message(callback.message.chat.id, ' Введите айди и новый баланс пользователя:') #admin_balance)
    adm_bal.set()
elif 'admin_ban' in callback.data:
    cur.execute('UPDATE users SET status = (?) WHERE userid = (?);', ('banned', callback.data.split('-')[1],))
    conn.commit()
    await bot.send_message(callback.message.chat.id, 'Пользователь заблокирован.')

Now, you're accessing the chat.id from the message attribute of the CallbackQuery object (callback).