我已经通读了查询文档,如果有办法从查询中获取表名,我看不到任何地方——例如,如果我有q = query(Users)
,我可以从中Users
退出q
吗?
问问题
1250 次
1 回答
4
请注意,像您这样的事件简单查询可能涉及其他表,然后是用户,以防它们相关。所以你需要迭代它。
以下应该做你需要的.selectable.locate_all_froms()
:
for t in query.selectable.locate_all_froms():
print repr(t)
print "table name: %s " % t.name
会产生类似的结果:
>>>Table('order', MetaData(bind=None), Column('id', Integer(), table=<order>, primary_key=True, nullable=False, default=Sequence('order_seq', metadata=MetaData(bind=None))), Column('name', String(length=127), table=<order>), schema=None)
>>>table name: order
这应该适用于从 Mapped 对象构建查询,也适用于从 Table 对象构建查询。
于 2013-01-22T18:50:29.143 回答