我有Elixir声明层的问题;我想为我的模型的每个实例检索特定列的数据,如下所示:
File.query.values("column")
问题是,它只适用于过滤后的查询,对该示例的简单查询失败并出现此错误:
Could not locate a bind configured on SQL expression or this Session
这种看起来像Elixir中的一个错误,但我找不到解决方法,也许我完全忽视了它应该工作的方式。
答案 0 :(得分:2)
使用表格
File.query.values(Table.column)
它应该有效。它返回一个生成器,因此用list()包装以获取序列。请参阅此示例交互式输出:
>>> User.query.values('display_name')
Traceback (most recent call last):
File "<console>", line 1, in ?
[snip traceback]
UnboundExecutionError: Could not locate a bind [ ... ] or this Session
>>> User.query.values(User.display_name).next()
(u'Vinay Sajip',)
BTW它并不特别是Elixir问题 - 从Elixir实体的查询属性返回的查询是标准的SQLAlchemy查询对象。请注意Query.values()的SQLAlchemy文档:
返回一个产生结果的迭代器 对应于给定列表的元组 列