In Django QuerySet, how do I do negation in the filter?

django

Solution

I think you are looking for the `exclude()` method:

>>> Entry.objects.exclude(year=2006)

Will return all Entry objects that are not in the year 2006.

If you wish to further filter the results, you can chain this to a filter() method:

>>> Entry.objects.exclude(year=2006).filter(field='value')

Problem

Filtering QuerySets in Django work like the following: ``` Entry.objects.filter(year=2006) ``` How can I use filter to find all entries which does not have year 2006? Something similar to the following sql: ``` SELECT * FROM entries WHERE not year = 2006 ```

Original source