С Django 1.7 легко создать пользовательский поиск. В официальной документации Django .
есть пример поиска
__ne
.
Сначала вам нужно создать сам поиск:
from django.db.models import Lookup
class NotEqual(Lookup):
lookup_name = 'ne'
def as_sql(self, qn, connection):
lhs, lhs_params = self.process_lhs(qn, connection)
rhs, rhs_params = self.process_rhs(qn, connection)
params = lhs_params + rhs_params
return '%s <> %s' % (lhs, rhs), params
Тогда вам нужно зарегистрировать его:
from django.db.models.fields import Field
Field.register_lookup(NotEqual)
И теперь вы можете использовать поиск __ne
в своих запросах следующим образом:
results = Model.objects.exclude(a=True, x__ne=5)