问题描述
我有一个 sqlAlchemy 表类,它定义了一个关联代理(通过 mixin),如下所示:
@declared_attr
def nationality_name(self):
return association_proxy("nationality","name")
我想使用 sqlAlchemy 检查方法获取此属性的名称。我尝试了以下方法:
for column in mapper.all_orm_descriptors:
print(column.key)
但这将关联代理的名称指定为 _AssociationProxy_nationality_4587917712
,而不是我实际指定的名称 nationality_name
。我似乎找不到任何其他属性可以用来获取实际给定的名称。
有没有办法通过 sqlAlchemy 检查得到这个名字?
可能只在 table 类上使用 dir
可能会回退,但这似乎相当脆弱(我必须过滤掉不是列的类的所有属性名称或关联代理)。
在搜索 StackOverflow 时,我发现 this question 中有人说“我通过获取代理的名称,然后使用 getattr 解决了这个问题” - 但我不知道他们是如何得到这个名称的。可能他们没有使用声明的属性,这可能会使事情变得更加复杂。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)