DB_relationshipslinkmodel
app.yaml
application: relationshipslinkmodel
version: 1
runtime: python
api_version: 1
handlers:
- url: /
script: main.py
main.py
from google.appengine.ext import db
import datetime
print 'Content-Type: text/html'
print ''
class Player(db.Model):
name = db.StringProperty()
class Guild(db.Model):
name = db.StringProperty()
class GuildMembership(db.Model):
player = db.ReferenceProperty(Player, collection_name='guild_memberships')
guild = db.ReferenceProperty(Guild, collection_name='player_memberships')
# Create some test data.
g1 = Guild(name='The Foo Battlers')
g2 = Guild(name='The Bar Fighters')
p1 = Player(name='druidjane')
p2 = Player(name='TheHulk')
db.put([p1, p2, g1, g2])
gm1 = GuildMembership(player=p1, guild=g1)
gm2 = GuildMembership(player=p1, guild=g2)
gm3 = GuildMembership(player=p2, guild=g2)
db.put([gm1, gm2, gm3])
player_key = p1.key()
guild_key = g2.key()
# ...
# Guilds to which a player belongs:
p = db.get(player_key)
print '<p>Guilds to which druidjane belongs:</p><ul>'
for gm in p.guild_memberships:
print '<li>%s</li>' % gm.guild.name
print '</ul>'
# Players that belong to a guild:
g = db.get(guild_key)
print '<p>Members of The Bar Fighters:</p><ul>'
for gm in g.player_memberships:
print '<li>%s</li>' % gm.player.name
print '</ul>'
db.delete([p1, p2, g1, g2, gm1, gm2, gm3])
print '<p>Entities deleted.</p>'
print '<p>The time is: %s</p>' % str(datetime.datetime.now())