Может быть, я неясно сформулировал свой вопрос, я, очевидно, плохо знаком с GAE, и моя терминология может быть неправильной. В любом случае вот мое решение:
class User(db.Model):
username = db.StringProperty()
class Group(db.Model):
users = db.ListProperty(db.Key)
Чтобы найти группу и присоединиться (несколько упрощенно):
groups = db.GqlQuery("SELECT * "
"FROM Group")
for g in groups:
if user.key() not in g.users:
group = g
break
group.users.append(user.key())