导航

Django – query not equal

Posted on 2016-05-06 19:11  网名还没想好  阅读(459)  评论(0编辑  收藏  举报

The simpliest way to retrieve data from tables is take them all. To do this,  you can write:

1
all_entries = Entry.objects.all()

But, usually, you have to select a subset of data. To reach this goal, you can filter the QuerySet with some conditions. The fastest way is yo use the .filter() method, giving as parameter our filterting conditions. For example:

1
Entry.objects.filter(date = 2006)

And.. how we can make a not equal filtering condtion?
Changing ‘=’ with ‘!=’ or ‘<>’,  will return error messages. And now? The solution is simple.
First of all, import in out file the library for the Q object:

1
from django.db.models import Q

Then, we can include our condition in a Q object. To make this a not equal query, write ‘~’ just before the Q object.

1
Entry.objects.filter(~Q(date = 2006))

In this case, the code will return all entries with date field different from 2006.