On 02/22/2017 08:56 PM, YKdvd wrote:
Let's say I have a model class Child, with an Integer column
"birthOrder" and text column "birthSign", and a class Parent which has
"children = relationship('Child',
collection_class=attribute_mapped_collection('birthOrder'))".  This
gives Parent a dictionary "children", keyed by the birth order.  I could
do a Parent query with
.join(Child).filter(Child.birthOrder==1).filter(Child.birthSign=="Virgo")  to
find all the firstborn Virgos.

I'd like to dynamically build up a similar query, given the text
"children[1].birthOrder" (plus knowledge that the operator and value
were "==" and "Virgo").  I can split that string on "." to get
"children[1]", and seeing the brackets I can assume the
attribute_mapped_collection and split again to get "children" and the
value "1",   Using inspect(), I can find out that "children" is a
RelationshipProperty of the Child class, But how can I inspect to find
out what column ("birthOrder") was passed in the
attribute_mapped_collection?  The RelationshipProperty I get from
inspect() has "collection_class", but this holds a lambda function.  Is
knowledge that "birthOrder" was what was used lost inside that, or is
there some other way I can find it?

i think it's just stuck in that lambda. so you might need to make yourself a callable that also has a little memoization stuck on it. it's legal to tack .some_variable onto a function if that works.



--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and
Verifiable Example. See http://stackoverflow.com/help/mcve for a full
description.
---
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 sqlalchemy+unsubscr...@googlegroups.com
<mailto:sqlalchemy+unsubscr...@googlegroups.com>.
To post to this group, send email to sqlalchemy@googlegroups.com
<mailto:sqlalchemy@googlegroups.com>.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

--
SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to