from django.db.models import Q

def companies_matching(merchants):
    """
    Return a queryset for companies whose names contain case-insensitive
    matches for any of the `merchants`.
    """
q = Q()
for merchant in merchants:
    q |= Q(name__icontains=merchant)
return Companies.objects.filter(q)
django icontains with __in lookup