您可以在jaikuengine上创建一个类似models的基类。
class BaseModel (db.Model):
def __init__(self, parent=None, key_name=None, _app=None, **kw):
if not key_name and 'key' not in kw:
key_name = self.key_from(**kw)
super(BaseModel, self).__init__(
parent, key_name=key_name, _app=_app, **kw)
if not key_name:
key_name = self.key_from(**kw)
@classmethod
def key_from(cls, **kw):
if hasattr(cls, 'key_template'):
try:
return cls.key_template % kw
except KeyError:
logging.warn(u'Automatic key_name generation failed: %s <- %s',
cls.key_template,
kw)
return None
class Account (BaseModel):
user = db.UserProperty(required=True)
email = db.EmailProperty()
key_template = "account/%(user)s"