Skip to content

Instantly share code, notes, and snippets.

@johnnncodes
Forked from hellysmile/repositories.py
Last active August 29, 2015 14:12
Show Gist options
  • Save johnnncodes/06a7086856c2d67b4466 to your computer and use it in GitHub Desktop.
Save johnnncodes/06a7086856c2d67b4466 to your computer and use it in GitHub Desktop.
from django.contrib.sites.models import Site
class Object(object):
def __init__(self, model, key):
self.model = model
self.key = key
def __call__(self, *args, **kwargs):
params = {}
params[self.key] = args[0]
return self.model.objects.get(**params)
class Repository(object):
def __init__(self, model):
self.model = model
def get_by_param(self, key):
return Object(self.model, key)
def __getattr__(self, key):
_key = key.replace('get_by_', '')
return self.get_by_param(_key)
SiteRepository = Repository(Site)
print SiteRepository.get_by_id(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment