0

好吧,我卡住了。我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或任何最有效的方法。但是我已经尝试了许多变体,但我显然遗漏了一些东西。当然,我想这样做的原因是确实有许多类似命名AddressStructuredProperty,并且我知道根据运行时上下文我想要哪一个。

谢谢你的帮助。

4

1 回答 1

0

鲍比是对的。我得到的是房产,而不是我想象的房产价值(漫长的一天)。

简单的答案是

getattr(prop, 'some_name')
于 2013-04-05T21:49:05.960 回答