@dp.message have no attribute "nick"

Написал для бота телеграмм функцию для присваивания пользователю титула (ника), используя автоматы состояний. код следующий

class give_nick(StatesGroup): #создаем класс состояний
    nick = State()
@dp.message(Command('givenick'))
async def give_nick(message: Message, state: FSMContext):
    if not (await base_func.is_admin(message, True)): #здесь проверяем пользователя юзаещего команду на админку
        await message.reply(msg_errors.bot_not_have_permissions)
        return 0
    if not (await base_func.is_admin(message)):
        await message.reply(msg_errors.no_permission)
        return 0
    error = await base_func.check_command(message, "mute")
    if error:
        await message.reply(id=message.chat.id, text=error)
        return 0
    await state.set_state(give_nick.nick) #переключаем состояние
    iddd = message.reply_to_message.from_user.id
    global fn_n
    fn_n = message.reply_to_message.from_user.first_name
    await message.answer(f"Какой титул дать {iddd}?")
@dp.message(give_nick.nick) #а тут получаем ошибку о том, что @dp.message() не имеет аргумента nick
async def prisvo(message: Message, state: FSMContext):
    await state.update_data(nick=message.text)
    con = sqlite3.connect("database/database.db")
    cur = con.cursor()
    have_nick = cur.execute(f"select nickname from nickname where tg_id = {idd}")
    have_nick = cur.fetchone()
    have_nick = have_nick[0]
    con.commit()
    con.close()
    if have_nick == None:
        con = sqlite3.connect("database/database.db")
        cur = con.cursor()
        cur.execute(f"insert into nickname (tg_id, nickname) values (?,?)", (idd, message.text))
        con.commit()
        con.close()
        await message.answer(f"Теперь у {fn_n} есть титул {message.text}")
    else:
        con = sqlite3.connect("database/database.db")
        cur = con.cursor()
        cur.execute(f"update nickname set nickname = {message.text}")
        con.commit()
        con.close()
        await message.answer(f"Теперь у {fn_n} есть титул {message.text}")

` в итоге получаем ошибку о том, что у @dp.message нет аргумента .nick. при этом в этом же боте написал команду для вывода погоды, так же с использованием FSM, так же с одним состоянием, и все работает отлично(код ниже)

@dp.message(Command("weather"))
async def townnn(message: Message, state: FSMContext):
    await state.set_state(Town.town)
    await message.answer(f"{message.from_user.first_name}, введи город")
@dp.message(Town.town)
async def townn(message: Message, state: FSMContext):
    await state.update_data(town = message.text)
    owm = pyowm.OWM("062c637c640ac6e8a41529c2e9318c26")
    mgr = owm.weather_manager()
    observation = mgr.weather_at_place(f"{message.text}")
    w = observation.weather
    print(w.clouds)
    temp_dict_celsius = w.temperature('celsius')
    print(temp_dict_celsius)
    tempo = temp_dict_celsius["temp_min"]
    tempo = round(tempo)
    print(tempo)
    await message.answer(f"{message.text}:\nТемпература: {tempo}\nОблачность: {w.clouds}\nСтатус: {w.status}")

вопрос, следовательно такой: почему не работает и как исправить? введите сюда описание изображения


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