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.