Generates a QueryList containing the subset of objects from
        this QueryList that do **not** match the provided field lookups.

        The following example returns the subset of a QueryList named
        ``site_list`` where the id is greather than 1000.

        >>> site_list.exclude(id__gt=1000)
        [{'url': 'http://site1001.tld/',...}, {...}],

        In the next example, ``exclude()`` returns the subset of objects
        from site_list that aren't published and don't have "test" in their
        title

        >>> site_list.exclude(published=True, title__icontains="test")
        [{'url': 'http://site1.tld/',...}, {...}]

        If all objects match the provided field lookups, then an empty
        QueryList is returned:

        >>> site_list.exclude(id__gt=0)
        []

def exclude(self, **kwargs):
        """Generates a QueryList containing the subset of objects from
        this QueryList that do **not** match the provided field lookups.

        The following example returns the subset of a QueryList named
        ``site_list`` where the id is greather than 1000.

        >>> site_list.exclude(id__gt=1000)
        [{'url': 'http://site1001.tld/',...}, {...}],

        In the next example, ``exclude()`` returns the subset of objects
        from site_list that aren't published and don't have "test" in their
        title

        >>> site_list.exclude(published=True, title__icontains="test")
        [{'url': 'http://site1.tld/',...}, {...}]

        If all objects match the provided field lookups, then an empty
        QueryList is returned:

        >>> site_list.exclude(id__gt=0)
        []

        """
        return QueryList(
            data=(x for x in self if not self._check_element(kwargs, x)),
            wrapper=self._wrapper, wrap=False)