Hello,

I'm trying to do the following:

       'home': orm.composite(
            Address,
            user.c.HomeAddress_Street,
            # The following column is a UUID but is a foreign key to a
mapped
            # table in SQLAlchemy, ideally would be to say
relationship(City)
            # and specify the column
            user.c.HomeAddress_City,
            user.c.HomeAddress_ZipCode
        )

I've read in this newsgroups that in the past somebody tried to do the
samething, and he was referred to establish a listener to the set
event. I already tried that by defining an AttributeExtension class
and checking that if is an UUID a query must be done to get the mapped
object. However I noticed that when a SQLAlchemy session does a
commit() it tries to initialize the same object in
sqlalchemy.orm.strategies:CompositeColumnLoader inside the copy
function of the init_class_attribute method, without calling my event
listener.

As such I tried a simple if isinstance(city, uuid.UUID): city =
City.load(city), where this method is just:
@classmethod
    def load(cls, id):
        session = Session()
        obj = session.query(cls).get(id)
        session.close()
        return obj

However during session.commit() it appears that my Session class (made
with scoped_session(sessionmaker()) ) goes to None (and crashes).

Is this an expected behavior?

Is there any simpler way to have a mapped class in a composite column
with a foreign key?

Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to