如何访问Google App Engine中db.Model的隐式属性名称?特别是,假设我有以下内容:
class Foo(db.Model):
specific = db.IntegerProperty()
class Bar(db.Model):
foo = db.ReferenceProperty(Foo, collection_name = "bars")
如果我试图在Foo上获取属性名称,如下所示:
my_foo = Foo(specific = 42)
for key, prop in my_foo.properties().iteritems()
print "HERE bars won't show up"
然后my_foo.bars属性不显示。还是我完全弄错了?
任何帮助非常感谢
编辑的模型是Python,而不是ruby
答案 0 :(得分:2)
(该模型定义看起来像Python和Ruby的奇怪混合。)
我不清楚你在这里想要实现什么,但你可以使用内省得到一个模型属性成员列表:
[x for x in dir(Foo) if isinstance(getattr(Foo,x), db.Property)]
如果您只是尝试将Bar的实例添加到Foo,则应创建新的Bar实例,其foo字段指向Foo实例:
foo = Foo(specific=42)
foo.put()
Bar(foo=foo).put()
Bar(foo=foo).put()
logging.info("Foo bars: %r" % list(foo.bars))