from dal import autocomplete from django.db.models import Q class Select2QuerySetView(autocomplete.Select2QuerySetView): model = None search_fields = [] def get_queryset_filter(self): q = self.q filter_q = Q() if not q: return filter_q words = q.split() for word in words: for field in self.search_fields: filter_q |= Q(**{"{}__icontains".format(field): word}) return filter_q def get_queryset(self): return self.model.objects.filter(self.get_queryset_filter())