Django nepoužívá ?
pro parametrizaci spíše používá parametry ve stylu formátovacího řetězce, tj. '%s' % 'hello'
atd. Viz Předávání parametrů do raw [Django docs]
.
Vypadá to, že chcete vytvořit dotaz ve tvaru LIKE '<SOMETHING>%'
, za prvé nepoužívejte ?
(použijte %s
místo toho), další místo pokusu o zřetězení v dotazu zřetězení v pythonu sám.
Váš dotaz by tedy měl být jako (Zkrácené irelevantní části):
cursor.execute("SELECT ... a.gene_name LIKE %s ORDER BY ...", ('{}%'.format(gene),))