Why don't you pass the params to session.query as a dictionary into filter_by as in:

In [1]: by_where_clause=dict(specie_codice='42', specie_descrizione='Nutrie')

In [2]: print session.query(Specie).filter_by( **by_where_clause ).count()

2015-01-12 12:37:40,518 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1 FROM (SELECT specie.codice AS specie_codice, specie.descrizione AS specie_descrizione, specie.cod_gruppo_specie AS specie_cod_gruppo_specie, specie.categoria_prodotto AS specie_categoria_prodotto, specie.interparto AS specie_interparto, specie.gestazione AS specie_gestazione, specie.codice_bdn AS specie_codice_bdn
FROM specie
WHERE specie.codice = %(codice_1)s AND specie.descrizione = %(descrizione_1)s) AS anon_1 2015-01-12 12:37:40,518 INFO sqlalchemy.engine.base.Engine {'codice_1': '42', 'descrizione_1': 'Nutrie'}
1

In [3]:


j


On 01/12/2015 11:45 AM, Mehdi wrote:
Hi
I want to make a query with given filters received from client side. client side sends a json array like this:
|
[
"0DA":{conditionType:null,column:"serialNumber",operator:"GREATER_THAN",value:50},
"1DG":{conditionType:"AND",column:"name",operator:"EQUAL",value:"john"}
]
|

I've managed to convert the json array into string query with a template like this:
|
" {condition_type} {column} {operator} {value} "
|

But this is only the "WHERE" clause. for complete query i use session.query(myModel) which myModel has two relationships with lazy="joined" mix with text() for filters:
|
session.query(myModel).filter(text(sql_string))
|

But the problem is the session.query() uses alias column names(with "AS" keyword) which my filter part with exact column names couln'd find those aliased columns. So Is there a way to tell session.query() use the exact column names? or i should change my way?
Thanks.


--
You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to