Python FastApi/Sqlalchemy“;“类未映射”;错误

Python FastApi/Sqlalchemy“;“类未映射”;错误,python,api,sqlalchemy,fastapi,pydantic,Python,Api,Sqlalchemy,Fastapi,Pydantic,当我尝试使用fastapi和sqlalchemy发布并创建新注册表时,出现此错误: 未映射类“endpoints.resultados.resultadoruebaserializer.InsertTResultadoRegla” 这是我的代码,谢谢你的帮助 Sqlalchemy模型 @as_declarative() class Base: def as_dict(self) -> dict: return {c.key: getattr(self, c.key) for c

当我尝试使用fastapi和sqlalchemy发布并创建新注册表时,出现此错误:

未映射类“endpoints.resultados.resultadoruebaserializer.InsertTResultadoRegla”

这是我的代码,谢谢你的帮助

Sqlalchemy模型

@as_declarative()
class Base:
  def as_dict(self) -> dict:
    return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}

class TResultadoRegla(Base):
__tablename__ = 'T_resultadoReglas'

idresultadoReglas = Column(Integer, primary_key=True)
idtareas = Column(ForeignKey('T_tareas.idtareas', ondelete='RESTRICT', onupdate='RESTRICT'), nullable=False, index=True)
idreglas = Column(ForeignKey('M_reglas.idreglas', ondelete='RESTRICT', onupdate='RESTRICT'), index=True)
fecCreacion = Column(Date)
resultado = Column(String(30))

M_regla = relationship('MRegla', backref="resultados")
T_tarea = relationship('TTarea')
class InsertTResultadoRegla(BaseModel):

  idtareas: int
  idreglas: int
  fecCreacion: date
  resultado: str

  class Config:
    orm_mode = True


def get_regla(db: Session, skip: int = 0, limit: int = 100):
    return db.query(Regla).offset(skip).limit(limit).all()


def check_resultados(db: Session, user_resultados: Dict):

   db_item = None

   for resultado in user_resultados:
    regla = get_regla_per_id(db, resultado["idreglas"])
    regla = regla.as_dict()   

    if resultado["resultado"] >= int(regla["minimo"]) and resultado["resultado"] <= int(regla["maximo"]):
        db_item = InsertTResultadoRegla(idtareas=1, idreglas=regla["idreglas"], fecCreacion=datetime.date.today(), resultado="CUMPLE")
        db.add(db_item)
        db.commit()
        db.refresh(db_item)
    else:
        db_item = InsertTResultadoRegla(idtareas=1, idreglas=regla["idreglas"], fecCreacion=datetime.date.today(), resultado="NO CUMPLE")
        db.add(db_item)
        db.commit()
        db.refresh(db_item)

  return db_item
Pydantic积垢和模式

@as_declarative()
class Base:
  def as_dict(self) -> dict:
    return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}

class TResultadoRegla(Base):
__tablename__ = 'T_resultadoReglas'

idresultadoReglas = Column(Integer, primary_key=True)
idtareas = Column(ForeignKey('T_tareas.idtareas', ondelete='RESTRICT', onupdate='RESTRICT'), nullable=False, index=True)
idreglas = Column(ForeignKey('M_reglas.idreglas', ondelete='RESTRICT', onupdate='RESTRICT'), index=True)
fecCreacion = Column(Date)
resultado = Column(String(30))

M_regla = relationship('MRegla', backref="resultados")
T_tarea = relationship('TTarea')
class InsertTResultadoRegla(BaseModel):

  idtareas: int
  idreglas: int
  fecCreacion: date
  resultado: str

  class Config:
    orm_mode = True


def get_regla(db: Session, skip: int = 0, limit: int = 100):
    return db.query(Regla).offset(skip).limit(limit).all()


def check_resultados(db: Session, user_resultados: Dict):

   db_item = None

   for resultado in user_resultados:
    regla = get_regla_per_id(db, resultado["idreglas"])
    regla = regla.as_dict()   

    if resultado["resultado"] >= int(regla["minimo"]) and resultado["resultado"] <= int(regla["maximo"]):
        db_item = InsertTResultadoRegla(idtareas=1, idreglas=regla["idreglas"], fecCreacion=datetime.date.today(), resultado="CUMPLE")
        db.add(db_item)
        db.commit()
        db.refresh(db_item)
    else:
        db_item = InsertTResultadoRegla(idtareas=1, idreglas=regla["idreglas"], fecCreacion=datetime.date.today(), resultado="NO CUMPLE")
        db.add(db_item)
        db.commit()
        db.refresh(db_item)

  return db_item
类InsertTResultadoRegla(基本模型):
idtareas:int
伊德里格拉斯:整数
生育:日期
结果:str
类配置:
orm_模式=真
def get_regla(数据库:会话,跳过:int=0,限制:int=100):
返回db.query(Regla).offset(skip).limit(limit).all()
def check_resultados(数据库:会话,用户_resultados:Dict):
db_项=无
对于用户_resultados中的resultado:
regla=根据id获取regla(db,resultado[“idreglas”])
regla=regla.as_dict()
如果resultado[“resultado”]>=int(regla[“minimo”])和resultado[“resultado”]