我使用这部分代码从数据库中获取数据
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
正如您在实际查询中看到的那样,参数是相同的。您认为发生了什么。