Guest User

Untitled

a guest
Feb 18th, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. ####
  2. #### Django 1.6 (old)
  3. ####
  4.  
  5. class ManagerClass(PassThroughManager):
  6. class QuerySetClass(QuerySet):
  7. def queryset_method(self):
  8. pass
  9.  
  10. def __init__(self):
  11. # voodoo
  12. super(ManagerClass, self).__init__(queryset_cls=ManagerClass.QuerySetClass)
  13.  
  14. def manager_method(self):
  15. pass
  16.  
  17. class ModelClass(BaseModel):
  18. objects = ManagerClass()
  19.  
  20.  
  21. ####
  22. #### Django >= 1.7 (new)
  23. ####
  24.  
  25. Three options!
  26.  
  27. # 1 // Using queryset as manager
  28.  
  29. class QuerySetClass(models.QuerySet):
  30. def method(self):
  31. # do a thing
  32.  
  33. class ModelClass(BaseModel):
  34. ...
  35. objects = QuerySetClass.as_manager()
  36.  
  37. # 2 // Using Manager by itself
  38.  
  39. class ManagerClass(models.Manager):
  40. def method(self):
  41. # do a thing
  42.  
  43. class ModelClass(BaseModel):
  44. ...
  45. objects = ManagerClass()
  46.  
  47. # 3 // When you need custom methods on both queryset and manager
  48.  
  49. class ManagerClass(models.Manager):
  50. def method(self):
  51. # do a thing
  52.  
  53.  
  54. class QuerySetClass(models.QuerySet):
  55. def method(self):
  56. # do a thing
  57.  
  58.  
  59. class ModelClass(BaseModel):
  60. ...
  61. objects = ManagerClass.from_queryset(QuerySetClass)()
Add Comment
Please, Sign In to add comment