Django non usa ?
per la parametrizzazione, utilizza invece parametri di stile stringa di formato, ovvero '%s' % 'hello'
, ecc. Vedi Passaggio di parametri in raw [Documenti Django]
.
Sembra che tu voglia fare una query del modulo LIKE '<SOMETHING>%'
, in primo luogo non utilizzare ?
(usa %s
invece), next invece di provare a concatenare nella query concatenare in python stesso.
Quindi la tua query dovrebbe essere come (Parti irrilevanti troncate):
cursor.execute("SELECT ... a.gene_name LIKE %s ORDER BY ...", ('{}%'.format(gene),))