当前位置:  开发笔记 > 编程语言 > 正文

SQLAlchemy:创建query.from_statement(text(...))的子查询,引发AttributeError

如何解决《SQLAlchemy:创建query.from_statement(text())的子查询,引发AttributeError》经验,为你挑选了0个好方法。

我正在构建一个严重依赖SQLAlchemy的查询构建器的工具,但它允许用户在模型不足的情况下指定要加入的子查询的文本文本.

但是,当我尝试这样的事情时:

q = session.query().from_statement(sa.text(subquery_text)).subquery(subquery_name)

......发生异常:

  File ".../lib/sqlalchemy/orm/query.py", line 473, in subquery
    return q.alias(name=name)
AttributeError: 'AnnotatedTextClause' object has no attribute 'alias'

查看.subquery()SQLAlchemy的代码库中的实现提高了我们如何从Query对象到AnnotatedTextClause的清晰度:

def subquery(self, name=None, with_labels=False, reduce_columns=False):
    # docstring in the original omitted here for brevity
    q = self.enable_eagerloads(False)
    if with_labels:
        q = q.with_labels()
    q = q.statement
    if reduce_columns:
        q = q.reduce_columns()
    return q.alias(name=name)

......但我发现自己对于我正在尝试做的事情是否有可能没有任何启发,如果是这样的话,它将如何实现.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有