【发布时间】:2013-04-02 01:52:08
【问题描述】:
好吧,我卡住了。我在实体上有一个简单的StructuredProperty(只有一层深)属性。在运行时,我想按名称获取 StructuredProperty 上的“子属性”之一的值。例如;
class Address(ndb.Model):
street = ndb.StringProperty()
# ...
class Person(ndb.Model):
# ...
address = ndb.StructuredProperty(Address)
然后在运行时我希望能够执行以下操作:
prop = entity._properties['address']
sub_prop = prop.__getattr__('street')
value = sub_prop.__get__(entity, Person)
或使用GenericProperty 或任何最有效的方法来解决它。但是我已经尝试了许多变体,但我显然遗漏了一些东西。当然,我想这样做的原因是确实有许多名为Address-like StructuredProperty 的名称,我根据运行时上下文知道我想要哪一个。
感谢您的帮助。
【问题讨论】:
-
getattr(prop, 'some_name')有什么问题?我遇到了这个问题。 -
你是对的,鲍比。我正往后看。不得不离开电脑然后回来。
标签: google-app-engine app-engine-ndb