Получать неявные имена свойств в db.Model в Google App Engine? - PullRequest
0 голосов
/ 08 октября 2010

Как я могу получить доступ к неявным именам свойств db.Model в Google App Engine? В частности, предположим, что у меня есть следующее:

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 ​​

1 Ответ

2 голосов
/ 08 октября 2010

(Это определение модели выглядит как странный гибрид Python и Ruby.)

Мне не ясно, чего вы пытаетесь достичь, но вы можете получить список членов свойства модели, используяintrospection:

[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))
...