App Engine ndb StructuredProperty __get__

时间:2013-04-02 01:52:09

标签: google-app-engine app-engine-ndb

好吧,我被卡住了。我在一个实体上有一个简单的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的{​​{1}} - 并且我知道基于运行时上下文我想要哪一个。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

鲍比是对的。我正在考虑房产,而不是像我想的那样(长日)。

简单的答案是

getattr(prop, 'some_name')