Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ####
- #### Django 1.6 (old)
- ####
- class ManagerClass(PassThroughManager):
- class QuerySetClass(QuerySet):
- def queryset_method(self):
- pass
- def __init__(self):
- # voodoo
- super(ManagerClass, self).__init__(queryset_cls=ManagerClass.QuerySetClass)
- def manager_method(self):
- pass
- class ModelClass(BaseModel):
- …
- objects = ManagerClass()
- ####
- #### Django >= 1.7 (new)
- ####
- Three options!
- # 1 // Using queryset as manager
- class QuerySetClass(models.QuerySet):
- def method(self):
- # do a thing
- class ModelClass(BaseModel):
- ...
- objects = QuerySetClass.as_manager()
- # 2 // Using Manager by itself
- class ManagerClass(models.Manager):
- def method(self):
- # do a thing
- class ModelClass(BaseModel):
- ...
- objects = ManagerClass()
- # 3 // When you need custom methods on both queryset and manager
- class ManagerClass(models.Manager):
- def method(self):
- # do a thing
- class QuerySetClass(models.QuerySet):
- def method(self):
- # do a thing
- class ModelClass(BaseModel):
- ...
- objects = ManagerClass.from_queryset(QuerySetClass)()
Add Comment
Please, Sign In to add comment