Как перечислить виды в хранилище данных? - PullRequest
5 голосов
/ 30 марта 2010

Мне просто нужно было выяснить это для моего собственного приложения, поэтому отправьте ответ здесь.

Ответы [ 3 ]

5 голосов
/ 30 июня 2011

Время прошло с тех пор, как об этом спросили и ответили. Теперь есть более простой способ.

См. http://code.google.com/appengine/docs/python/datastore/metadataqueries.html

q = Kind.all()
for kind in q.fetch(100):
  print kind.kind_name
4 голосов
/ 30 марта 2010
def GetSchemaKinds():
    """Returns the list of kinds for this app."""

    class KindStatError(Exception):
      """Unable to find kind stats."""

    from google.appengine.ext.db import stats
    global_stat = stats.GlobalStat.all().get()
    if not global_stat:
      raise KindStatError()
    timestamp = global_stat.timestamp
    kind_stat = stats.KindStat.all().filter(
        "timestamp =", timestamp).fetch(1000)
    kind_list = [stat.kind_name for stat in kind_stat
                 if stat.kind_name and not stat.kind_name.startswith('__')]
    kind_set = set(kind_list)
    return list(kind_set) 

Ссылка: http://groups.google.com/group/google-appengine/browse_thread/thread/f2e7568040c015ff

1 голос
/ 01 января 2016

Стоит отметить, что этот ответ для старших db API. Новый ndb API имеет другой способ получить все Kind, перечисленные здесь https://cloud.google.com/appengine/docs/python/ndb/metadata#get_kinds

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...