With the Django QuerySet class, you can apply filters that return QuerySets defined by your filters. The filter()
method returns all objects that match the keyword arguments given to the method.
The following method returns all objects with the year 2005:
Entry.objects.filter(year=2005)
However, say you want to return all objects that are not equal to a keyword argument. The filter()
method cannot make use of comparison operators, like !
or !=
to define a “not equal to” comparison.
So is it possible to exclude information using a filter? Or is there another method you could use?
The exclude()
method from the QuerySet class returns all objects that do not match the given keyword arguments. So whatever data matches the parameter that is passed into the exclude()
method will be excluded from the returned QuerySet.
Below is an example of the use of the exclude()
method:
Entry.objects.filter(year=2005).exclude(color=blue)
The QuerySet created above will contain all objects associated with the year 2005, except those associated with the color blue.
For more tips on working with Django on Sentry, have a look at these articles: