Django nie używa ?
do parametryzacji używa raczej parametrów stylu ciągu formatującego, tj. '%s' % 'hello'
itp. Zobacz Przekazywanie parametrów do raw [Dokumentacja Django]
.
Wygląda na to, że chcesz wykonać zapytanie w postaci LIKE '<SOMETHING>%'
, po pierwsze nie używaj ?
(użyj %s
zamiast tego), następnie zamiast próbować łączyć w zapytaniu łączyć w pythonie się.
Dlatego zapytanie powinno wyglądać tak:(Obcięte nieistotne części):
cursor.execute("SELECT ... a.gene_name LIKE %s ORDER BY ...", ('{}%'.format(gene),))