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.