如何在sqlalchemy和django中将查询字符串结果映射到自定义对象(模型)



我想将结果返回到自定义模型(类),但我收到了以下错误消息:

SQL表达式、列或映射实体应为

我不知道哪里出了问题。

 connect = Connector()
 Session = sessionmaker(bind=connect.ConnectorMySql())
 ses = Session()
 query = u"""
      SELECT
           `reports`.ID As 'ID',
            reports.Title AS 'ReportTitle',
           `reports`.Text as 'ReporText',
           `reports`.Status as 'Status',
           `user`.ID AS 'ReporterID',
           `user`.Name as 'ReporterName' ,
           `user`.Username as 'ReporterUserName',
           `user`.ImageProfile as 'ReporterAvatar',
           `Clinet`.ID AS 'ClinetID',
           `Clinet`.SiteUserName AS 'ClinetUserName',
           `Clinet`.ImageProfile as 'ClinetAvatar'
      FROM reports
      JOIN Clinet  on reports.ClinetID = `Clinet`.ID
      JOIN users user on reports.UserID = `user`.ID
      where
           :pClinetID IS NULL OR reports.ClinetID=:pClinetID
      AND
           :pStatus IS NULL OR reports.Status=:pStatus;
 """
 QueryResult=CustomModel()
 QueryResult=ses.query(CustomModel).from_statement(query).all()   
 return QueryResult

要在SQLAlchemy中使用查询字符串,必须使用文本函数来处理它们。

所以你应该使用
QueryResult=ses.query(CustomModel).from_statement(text(query)).all()

最新更新