from ajax_select import register, LookupChannel from django.db.models import Q from archaeological_operations.models import Operation @register('operation') class OperationLookup(LookupChannel): model = Operation def get_query(self, q, request): query = Q() for term in q.strip().split(' '): subquery = ( Q(cached_label__icontains=term) ) query &= subquery return self.model.objects.filter(query).order_by('cached_label')[:20] def format_item_display(self, item): return u"%s" % item.cached_label