Google AppEngine
Mixed polymorphic and monomorphic classes
from google.appengine.ext import db
from google.appengine.ext.db import polymodel
class Base(db.Model):
date_added = db.DateTimeProperty(auto_now_add=True,auto_now=False)
class Person(Base):
name = db.StringProperty()
class Item(Base, polymodel.PolyModel):
owner = db.ReferenceProperty(Person, collection_name="stuff")
motive = db.StringProperty()
class Book(Item):
title = db.StringProperty()
class Weapon(Item):
name = db.StringProperty()
battleground = db.StringProperty()
p = Person(name="Barack")
p.put()
Book(title="Quantum Mechanics", owner=p, motive="Curiosity").put()
Weapon(name="Wit", battleground="Debate", owner = p, motive="Education").put()
b.put()
for x in p.stuff:
print "%s: %s" % (x.motive, x.date_added)