return self def groups_remove(self, name): """ Custom helper method for User class to remove group(s). """ group, _ = Group.objects.get_or_create(name=name) group.user_set.remove(self) return self # Add custom methods to User class User.add_to_class('groups_add', groups_add) User.add_to_class('groups_remove', groups_remove) User.add_to_class('GROUP_ADVISOR', 'Advisors') User.add_to_class('GROUP_AUTHORIZED_REPRESENTATIVE', 'AuthorizedRepresentatives') # TODO: would be nice to rename User.add_to_class('GROUP_SUPERVISOR', 'Supervisors') User.add_to_class('GROUP_CLIENT', 'Clients') # TODO: update after modularization User.add_to_class( 'PROFILES', { User.GROUP_ADVISOR: { 'app_label': 'main', 'model_name': 'Advisor'