Kiedy należy używać metody @classmethod, a kiedy metody def (self)?

Podczas integracji aplikacji Django, której wcześniej nie używałem, znalazłem dwa różne sposoby definiowania funkcji w klasach. Autor wydaje się używać ich obu bardzo celowo. Pierwszy to ten, którego sam często używam: class Dummy(object): def some_function(self,*args,**kwargs): do something...