Django no usa ?
para la parametrización, más bien utiliza parámetros de estilo de cadena de formato, es decir, '%s' % 'hello'
, etc. Consulte Pasar parámetros a raw [Documentos de Django]
.
Parece que desea realizar una consulta de la forma LIKE '<SOMETHING>%'
, en primer lugar, no use ?
(use %s
en su lugar), a continuación, en lugar de intentar concatenar en la consulta, concatenar en python mismo.
Por lo tanto, su consulta debería ser como (partes irrelevantes truncadas):
cursor.execute("SELECT ... a.gene_name LIKE %s ORDER BY ...", ('{}%'.format(gene),))