I just had to figure this out for my own application, so reposting the answer here.

Was it helpful?


Time has passed since this was asked and answered. Now there's a simpler way.


q = Kind.all()
for kind in q.fetch(100):
  print kind.kind_name


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) 


It is worth noting that this answer is for the older db api. The new ndb api has another way to get all Kind listed here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow