Ошибка SQLAlchemy : Значение по умолчанию не существует, но почему?

#python #sqlalchemy #fastapi

Вопрос:

Я разрабатываю СЕРВЕР REST API, используя FAST-API с SQLALCHEMY.

Но когда я пытаюсь создать какой-то новый столбец данных, используя данные тела запроса, он продолжает возвращаться Internal Server Error , как показано ниже. Я использую электронную почту в качестве первичного ключа и размещаю информацию об электронной почте при ее создании, но ошибка не устранена.

 @router.post("/register/{sns_type}", status_code=200, response_model=Token)
async def register(sns_type: SnsType, reg_info: TestUserRegister, session: Session=Depends(db.session)):
    
    if sns_type == SnsType.email:

        if not reg_info.email or not reg_info.pw:
            return JSONResponse(status_code=400, content=dict(msg="Email and PW must be provided"))
        is_exist = await is_email_exist(reg_info.email)
        if is_exist:
            return JSONResponse(status_code=400, content=dict(msg="EMAIL_EXISTS"))
        
        if not is_company_exist(reg_info.company):
            return JSONResponse(status_code=400, content=dict(msg="No such company exists"))

        hash_pw = bcrypt.hashpw(reg_info.pw.encode("utf-8"), bcrypt.gensalt())
        new_user = User.create(session, auto_commit=True, email=reg_info.email, pw=hash_pw,  Company_ID=Company.get(CompanyName=reg_info.company).CompanyID)
        token = dict(Authorization=f"Bearer {create_access_token(data=UserToken.from_orm(new_user).dict(exclude={'pw'}))}")
        return token

    return JSONResponse(status_code=400, content=dict(msg="Not Supported"))
 

Это моя схема данных.

 class User(Base, BaseMixin):
    __tablename__ = "User"
    email = Column(String(length=255), primary_key=True)
    pw = Column(String(length=2000), nullable=False)
    usertype = Column(Enum("Admin", "Company-Host", "Company-User", "Developer"), default="Company-User")
    status = Column(Enum("active", "deleted", "blocked"), default="active")
    CompanyID = Column(Integer, ForeignKey("Company.CompanyID"))
    phone_number = Column(String(length=20), nullable=True, unique=True)
    profile_img = Column(String(length=1000), nullable=True)
    sns_type = Column(Enum("FB", "G", "K", 'N'), nullable=True)
    updated_at = Column(DateTime, nullable=False, default=func.utc_timestamp(), onupdate=func.utc_timestamp())
 

введите описание изображения здесь

Комментарии:

1. Я думаю, нам нужно посмотреть код для User.create .

2. Пожалуйста, укажите соответствующие сведения об отладке (т. Е. сообщение об ошибке) в виде текста в вашем сообщении, а также изображения, удаляющие сообщение об ошибке из контекста сообщения, которые трудно прочитать для тех, у кого есть проблемы с доступом и которые на самом деле недоступны для поиска.