- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试查询 Version
,我希望将对象返回到它们的 max_version_number
属性等于 version_number
的位置:
latest_versions = \
dbSession.query(Version).filter(Version.max_version_number == Version.number_version)
这会导致错误:
Traceback (most recent call last):
...
...
filter(Version.max_version_number == Version.version_number).\
File "c:\python27\lib\site-packages\sqlalchemy\orm\query.py", line 2588, in all
return list(self)
File "c:\python27\lib\site-packages\sqlalchemy\orm\query.py", line 2736, in __iter__
return self._execute_and_instances(context)
File "c:\python27\lib\site-packages\sqlalchemy\orm\query.py", line 2751, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 914, in execute
return meth(self, multiparams, params)
File "c:\python27\lib\site-packages\sqlalchemy\sql\elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 1146, in _execute_context
context)
File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 1341, in _handle_dbapi_exception
exc_info
File "c:\python27\lib\site-packages\sqlalchemy\util\compat.py", line 200, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 1139, in _execute_context
context)
File "c:\python27\lib\site-packages\sqlalchemy\engine\default.py", line 450, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'property' [SQL: 'SELECT "Versions".id AS "Versions_id", "Links".id AS "Links_id", "Entities".id AS "Entities_id", "SimpleEntities".stalker_version AS "SimpleEntities_stalker_version", "SimpleEntities".id AS "SimpleEntities_id", "SimpleEntities".entity_type AS "SimpleEntities_entity_type", "SimpleEntities".name AS "SimpleEntities_name", "SimpleEntities".description AS "SimpleEntities_description", "SimpleEntities".created_by_id AS "SimpleEntities_created_by_id", "SimpleEntities".updated_by_id AS "SimpleEntities_updated_by_id", "SimpleEntities".date_created AS "SimpleEntities_date_created", "SimpleEntities".date_updated AS "SimpleEntities_date_updated", "SimpleEntities".type_id AS "SimpleEntities_type_id", "SimpleEntities".generic_text AS "SimpleEntities_generic_text", "SimpleEntities".thumbnail_id AS "SimpleEntities_thumbnail_id", "SimpleEntities".html_style AS "SimpleEntities_html_style", "SimpleEntities".html_class AS "SimpleEntities_html_class", "Links".original_filename AS "Links_original_filename", "Links".full_path AS "Links_full_path", "Versions".task_id AS "Versions_task_id", "Versions".take_name AS "Versions_take_name", "Versions".version_number AS "Versions_version_number", "Versions".is_published AS "Versions_is_published", "Versions".created_with AS "Versions_created_with", "Versions".parent_id AS "Versions_parent_id" \nFROM "SimpleEntities" JOIN "Entities" ON "SimpleEntities".id = "Entities".id JOIN "Links" ON "Entities".id = "Links".id JOIN "Versions" ON "Links".id = "Versions".id \nWHERE "Versions".version_number = %(version_number_1)s'] [parameters: {'version_number_1': <property object at 0x00000000060EF6D8>}]
我做错了什么?
Here's 版本
模型。
这是我的实际查询,没有问题:
proj_id = 5
versions = Version.query.join(Task).filter(Task.project_id == proj_id).all()
...但是,这会返回所有 版本,我希望只获取从查询返回的版本号最高的版本,这也是我尝试对其进行过滤的原因.
最佳答案
问题是您传递的是 property
要比较的描述符对象(Version.max_version_number
),psycopg2 不知道如何适应。相反,您应该以一种或另一种方式使用 SQL 表达式。一种常见的方法是使用 hybrid attributes .
获取项目中按任务分组的最大版本行 project_id
你可以use DISTINCT ON combined with ORDER BY在 PostgreSQL 中:
versions = Version.query\
.join(Task)\
.distinct(Version.task_id)\
.filter(Task.project_id == proj_id)\
.order_by(Version.task_id, Version.version_number.desc())\
.all()
这将只返回 1 Version
每Task
虽然,即使 Version
的多个实例共享相同的 Version.version_number
,另一方面,这看起来很奇怪。
另一种选择是使用子查询作为排序查找并加入:
from sqlalchemy import tuple_
max_per_task = dbSession.query(Version.task_id,
func.max(Version.version_number).label('max'))\
.join(Task)\
.filter(Task.project_id == proj_id)\
.group_by(Version.task_id)\
.subquery()
versions = Version.query\
.join(max_per_task,
tuple_(max_per_task.c.task_id, max_per_task.c.max) ==
tuple_(Version.task_id, Version.version_number))\
.all()
关于python - sqlalchemy.exc.ProgrammingError : (psycopg2. ProgrammingError) 无法适配类型 'property',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37878909/
我正在编写一些帐户创建代码并 try catch 特定的 sqlalchemy 异常,以便当用户使用已关联到现有帐户的电子邮件注册帐户时,我可以反馈适当的错误消息。 发生这种情况时,我原以为会得到一个
我创建了这个适用于 vector 、链表和双链表的函数。该函数获取一个值并在容器中搜索它。如果 vlaue 在容器中,则该函数会将值插入到已存在的位置旁边。因此,如果 val=2,则 {3,2,5}
我不断收到错误访问错误,我认为这与我的 UIPickerView 有关,因为这是应用程序崩溃的时候。一切正常,直到我从 UIPickerView 中做出第九个选择。每次应用程序在第 9 个选择时崩溃。
我在使用 swift 2 的最新版本的 xcode 中遇到此错误 上线 let s = linkTxt.text linkTxt 中的文本通过按钮“pasteFromClipBoard”显示 let
我有一个 Massive View Controller 并试图将我的代码分成不同的类。我创建了一个类 CurrentLocation。在 View Controller 中,我调用了 google
我正在使用 sqlacodegen 从我的数据库中反射(reflect)一堆表。我收到以下错误: sqlalchemy.exc.AmbiguousForeignKeysError: Can't det
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
好吧,我对 ASP.NET 和 MasterPage 概念还很陌生,有一个我无法弄清楚的错误。 这是我的 default.aspx 的一部分: You've got credits.
本文整理了Java中com.ctc.wstx.exc.WstxException类的一些代码示例,展示了WstxException类的具体用法。这些代码示例主要来源于Github/Stackoverf
我在模拟器中遇到了问题。模拟器偶尔会停止并显示 程序收到信号:“EXC_BAD_ACCESS”。 作为控制台输出。没有提供更多信息。有机会更接近问题吗? 最佳答案 我看到 NSZombie 已经被提议
我很可能在这里缺少一些基本概念,但我尝试创建一些类似简单的代码审查应用程序的东西,并在设计数据库架构时尝试遵循此文档: http://flask-sqlalchemy.pocoo.org/2.1/mo
这种情况只是偶尔发生一次。当我从菜单项调用的方法中的断点单步执行时,按下时我最终到达方法的末尾,当我单步执行时,我最终到达 ccTouchEnded,然后发生错误访问。调试输出窗口中没有显示任何内容,
我在获取随机人变量的生日或电子邮件时遇到 EXC_BAD_ACCESS 问题。我尝试使用以下代码,但当我使用 dispatch_async 运行它时失败了。 ABAddressBook address
我收到此错误: >>> br = Browser() >>> br.open("http://www.bestforumz.com/forum/") >> >>> br.select_form(nr=
我开始使用 DeviceMotion 类进行编码。遵循 Apple 的文档后,我有以下内容: - (void)viewDidLoad { [super viewDidLoad]; my
我正在学习 Pyramid 教程:http://pyramid-blogr.readthedocs.io/en/latest/project_structure.html并使用 Windows 8。
我正在 try catch mysql/sqlalchemy OperationalErrors 并替换 handle access denied (1045) 与 connection refuse
为什么我会得到 TraceBack sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between pare
过去 3 天我一直在为这个错误而苦苦挣扎,但没有成功。我正在开发一个包含 uiviewcontrollers 和 uitableviewcontrollers 的组合应用程序,在表格 View 中我单
给定以下 python 代码: import git try: raise git.exc.GitCommandError("dummy", "foo") except git.exc.Git
我是一名优秀的程序员,十分优秀!