Skip to content

Instantly share code, notes, and snippets.

@code
Created March 11, 2010 23:36
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save code/329849 to your computer and use it in GitHub Desktop.
Save code/329849 to your computer and use it in GitHub Desktop.
import gaerun
from google.appengine.ext import db
class LazyModelMixin:
@classmethod
def get_put_by_key_name(cls, key_name, **kwargs):
object = cls.get_by_key_name(key_name) or cls(key_name=key_name, **kwargs)
if object.is_saved:
for k,v in kwargs.items():
setattr(object, k, v)
object.put()
return object
class LazyModel(db.Model, LazyModelMixin):
pass
class TestModel(LazyModel):
name = db.StringProperty(required=True)
test = TestModel.get_put_by_key_name("luke", name="Luke")
print test.name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment