def get(self, request, user_id, **kwargs):
     # # Hack to force json return.
     # request.META['HTTP_ACCEPT'] = 'application/json'
     try:
         userobj = User.objects.get(id=user_id)
     except User.DoesNotExist:
         return None, 404
     devilry_qualifiesforexam_enabled = 'devilry_qualifiesforexam' in settings.INSTALLED_APPS
     adminuserobj = self.request.user
     candidates = Candidate.objects.filter(student=userobj)
     if not adminuserobj.is_superuser:
         nodepks_where_is_admin = Node._get_nodepks_where_isadmin(adminuserobj)
         candidates = candidates.filter(
                 Q(assignment_group__parentnode__admins=adminuserobj) | \
                 Q(assignment_group__parentnode__parentnode__admins=adminuserobj) | \
                 Q(assignment_group__parentnode__parentnode__parentnode__admins=adminuserobj) | \
                 Q(assignment_group__parentnode__parentnode__parentnode__parentnode__pk__in=nodepks_where_is_admin))
     candidates = candidates.order_by(
             'assignment_group__parentnode__parentnode__parentnode__short_name',
             '-assignment_group__parentnode__parentnode__start_time',
             'assignment_group__parentnode__publishing_time',
             'assignment_group__parentnode__short_name',
             )
     return {
         'user': serialize_user(userobj),
         'grouped_by_hierarky': self._group_candidates_by_hierarky(candidates, userobj, devilry_qualifiesforexam_enabled),
     }