&#62; I've taken to using a pickled python object in a text field in every model.<p>That's basically what App Engine does right there.  It stores by an id, then the value is your object serialized as a protocol buffer.<p>The App Engine datastore allows you to look up by other properties than id because it indexes <i>every field</i> of your object in the background without you having to deal with it.  You can query by pair-wise or more-wise indexes too, but you have to create those manually.