Выдаёт ошибку при работе Traceback (most recent call last):
File "C:\telegrampogoda\pythonProject2\main.py", line 4, in
from app.handlers import router
File "C:\telegrampogoda\pythonProject2\venv\app\handlers.py", line 63, in
router.message(Register.number, F.contact)
AttributeError: type object 'Register' has no attribute 'number'
Сам код из папка Main.py
import asyncio
from aiogram import Bot, Dispatcher
from app.handlers import router
async def main():
bot = Bot(token='7357711648:AAHuMsyZt9DY-QWEiNXdxKrVE14Gi-jkhwE')
dp = Dispatcher()
dp.include_router(router)
await dp.start_polling(bot)
if __name__ == '__main__':
try:
asyncio.run(main())
except KeyboardInterrupt:
print('Бот выключен')
Код из папки Handlers.py
from aiogram import F, Router
from aiogram.types import Message, CallbackQuery
from aiogram.filters import CommandStart, Command
from aiogram.fsm.state import State, StatesGroup
from aiogram.fsm.context import FSMContext
import app.keyboards as kb
router = Router()
class Register(StatesGroup):
name = State()
age = State()
Number = State()
@router.message(CommandStart())
async def cmd_start(message: Message):
await message.answer('Привет!', reply_markup=kb.main)
await message.reply('как дела?')
@router.message(Command('help'))
async def cmd_help(message: Message):
await message.answer('Вы нажали на кнопку помощи')
@router.message(F.text == 'Каталог')
async def catalog(message: Message):
await message.answer('Выберите категорию товара', reply_markup=kb.catalog)
@router.callback_query(F.data == 't-shirt')
async def tshirt(callback: CallbackQuery):
await callback.answer('Вы выбрали категорию')
await callback.message.answer('Вы выбрали категорию Минуалы РФ.')
@router.message(Command('register'))
async def register(message: Message, state: FSMContext):
await state.set_state(Register.name)
await message.answer('Ведите ваше имя')
@router.message(Register.name)
async def register_name(message: Message, state: FSMContext):
await state.update_data(name=message.text)
await state.set_state(Register.age)
await message.answer('Ведите ваш возраст')
@router.message(Register.age)
async def register_age(message: Message, state: FSMContext):
await state.update_data(age=message.text)
await state.set_state(Register.number)
await message.answer('Отправьте ваш номер телефона', reply_markup=kb.get_number)
@router.message(Register.number, F.contact)
async def register_number(message: Message, state: FSMContext):
await state.update_data(number=message.contact.phone_number)
data = await state.get_data()
await message.answer(f'Ваше имя: {data["name"]}\nВаш Возраст: {data["age"]}\nНомер: {data["number"]}')
await state.clear()
Код из папки Keyboards.py
from aiogram.types import (ReplyKeyboardMarkup, KeyboardButton,
InlineKeyboardMarkup, InlineKeyboardButton)
main = ReplyKeyboardMarkup(keyboard=[[KeyboardButton(text='Каталог')],
[KeyboardButton(text='Корзина')],
[KeyboardButton(text='Контакты'),
KeyboardButton(text='О нас')]],
resize_keyboard=True,
input_field_placeholder='Выберите пункт меню...')
catalog = InlineKeyboardMarkup(inline_keyboard=[
[InlineKeyboardButton(text='Минуалы РФ', callback_data='t-shirt')],
[InlineKeyboardButton(text='Минуалы UA', callback_data='sneakers')],
[InlineKeyboardButton(text='Минуалы EU', callback_data='cap')]])
get_number = ReplyKeyboardMarkup(keyboard=[[KeyboardButton(text='Отправить номер',
request_contact=True)]],
resize_keyboard=True)
Сижу вторые сутки и пытаюсь решить проблему, тк как начинаю только всё изучать не понимаю в чём может быть проблема, перебробовал почти всё