def METHOD_NAME(self):
    if not hasattr(self, '_qs'):
        METHOD_NAME = super(UserProfileFilter, self).METHOD_NAME
        if not hasattr(self, '_users_info'):
            qs_filter = {}
            if u'courses' in self.data:
                qs_filter['user__group__course__id__in'] = self.data.getlist(u'courses')
            if u'groups' in self.data:
                qs_filter['user__group__id__in'] = self.data.getlist(u'groups')
            profiles_info = METHOD_NAME.filter(**qs_filter).values(
                'id',
                'user__id',
                'user__username',
                'user__email',
                'user__last_name',
                'user__first_name',
                'user_status__id',
                'user_status__name',
                'user_status__color'
            )
            extra_sql = self.get_extra_sql_statuses()
            if extra_sql:
                profiles_info = profiles_info.extra(where=[extra_sql])
            users_info = {}
            for info in profiles_info:
                if info['user__id'] not in users_info:
                    users_info[info['user__id']] = defaultdict(dict)
                    users_info[info['user__id']]['id_profile'] = info['id']
                    users_info[info['user__id']]['username'] = info['user__username']
                    users_info[info['user__id']]['email'] = info['user__email']
                    users_info[info['user__id']]['last_name'] = info['user__last_name']
                    users_info[info['user__id']]['first_name'] = info['user__first_name']
                if info['user_status__id']:
                    users_info[info['user__id']]['statuses'][info['user_status__id']] = {
                        'name': info['user_status__name'],
                        'color': info['user_status__color'],
                    }
            self.users_info = users_info
    return self._qs