For people who are still interested in Q objects using this eav.
My workaround this problem is :
#First of generate list of Q objects for non eav fields
q_list = [Q(x) for x in predicates]
kwargs = {'eav_field1__icontains': 'test', 'eav_field2': 'test2'}
# then depending what you want use OR or AND to join the two separate querysets
qs = (Entity.objects.filter(reduce(operator.or_, q_list)) or Entity.objects.filter(**kwargs)).distinct()
anyone have a better idea ? pliz share