Django gebruikt ? voor de parametrering gebruikt het eerder parameters voor tekenreeksstijlen, d.w.z. '%s' % 'hello' , etc. Zie Parameters doorgeven aan raw [Django-documenten]
.
Het lijkt erop dat u een zoekopdracht wilt maken met de vorm LIKE '<SOMETHING>%' , gebruik ten eerste niet ? (gebruik %s in plaats van), volgende in plaats van te proberen samen te voegen in de query samenvoegen in python zelf.
Daarom zou uw vraag moeten zijn als (afgekapte irrelevante delen):
cursor.execute("SELECT ... a.gene_name LIKE %s ORDER BY ...", ('{}%'.format(gene),))