def get_queryset(self): site = self._get_current_site(self.request) query = Section.get_deleted_query(self.request.user) if site: query &= Section.get_filter_query_by_site(site) else: if not self.request.user.is_staff: query &= Q(id__isnull=True) return super(SectionView, self).get_queryset().filter(query)\ .extra( **Section.get_extrafilter_ordering_by_site(site) )\ .prefetch_related('settings')\ .order_by('ordering', 'order')\ .distinct()