1

我使用这部分代码从数据库中获取数据

class OrmModel(BaseModel):
    class Config:
        orm_mode = True

class PruebaVozFila(OrmModel):
    id:int 
    id_origen:int 
    id_destino:int
    hora_programada:str
    hora_ejecutada:str 
    exitoso:bool 
    estado:str 
@router.get("/pruebas-voz",response_model=PruebaVozFila)
def obtener_pruebas_voz(
    *,
    db: Session = Depends(deps.get_db),
    current_user: models.User = Depends(deps.get_current_active_user),
    search:Search = Depends(Search)
    ) -> Any:

    temporal_query = db.query(PruebaVoz).filter().with_entities(
        
    PruebaVoz.id,
    PruebaVoz.id_origen,
    PruebaVoz.id_destino,
    PruebaVoz.hora_programada,
    PruebaVoz.hora_ejecutada,
    PruebaVoz.exitoso,
    PruebaVoz.estado,

    ).first()

    return  jsonable_encoder(temporal_query)

因此,当我在不使用“with_entities”的情况下进行查询时,它可以工作,但是如果我添加它,则会引发以下错误,请 在此处输入图像描述

似乎 Pydantic 无法在 temporal_query 中找到列或其名称我将查询打印为 SQL 并用“with_entities”给我这个

SELECT pruebavoz.id AS pruebavoz_id, pruebavoz.id_origen AS pruebavoz_id_origen, pruebavoz.id_destino AS pruebavoz_id_destino, pruebavoz.hora_programada AS pruebavoz_hora_programada, pruebavoz.hora_ejecutada AS pruebavoz_hora_ejecutada, pruebavoz.exitoso AS pruebavoz_exitoso, pruebavoz.estado AS pruebavoz_estado 

没有“with_entities”

SELECT pruebavoz.id AS pruebavoz_id, pruebavoz.id_origen AS pruebavoz_id_origen, pruebavoz.id_destino AS pruebavoz_id_destino, pruebavoz.hora_programada AS pruebavoz_hora_programada, pruebavoz.hora_ejecutada AS pruebavoz_hora_ejecutada, pruebavoz.exitoso AS pruebavoz_exitoso, pruebavoz.estado AS pruebavoz_estado, pruebavoz.usuario_ingreso AS pruebavoz_usuario_ingreso, pruebavoz.creado AS pruebavoz_creado, pruebavoz.actualizado AS pruebavoz_actualizado

正如您在实际查询中看到的那样,参数是相同的。您认为发生了什么。

4

0 回答 0