On Feb 13, 2012, at 10:18 AM, Jevgenij wrote:

> Hi SQLAlchemy users,
> 
> We are using SQLAlchemy for our new web app, and ran into a problem,
> still learning and are unsure if we found a bug or we are just using
> the framework wrong.
> 
> We have a table called "user" and two child tables:
> ------
> class FacebookConnect(Base):
>    __tablename__ = 'facebook_connects'
>    ...
>    user = relationship(User, backref=backref('facebook_connect',
> uselist=False))
> 
> class WebLogin(Base):
>    __tablename__ = 'web_logins'
>    ...
>    user = relationship(User, backref=backref('web_login',
> uselist=False))
> -----
> 
> user and the other two tables have a 1..1 <---> 0..1 relationship.
> 
> In our admin we load a list of users like this:
> users = db.query(User).options(subqueryload(User.web_login,
> User.facebook_connect))

The bug was actually fixed in 0.7.5 which is that it was silently failing to 
report that this is the wrong usage.  You want to use two "subqueryload()" 
directives here, one for User.web_login, one for User.facebook_connect. 

The XYZload() directives only handle one path through the model each; the 
multiple entries is so you could say subqueryload(User.web_login, 
WebLogin.widgets) which would cause "WebLogin.widgets" to be subqueryloaded as 
soon as User.web_login were lazy loaded, or subqueryload_all(User.web_login, 
WebLogin.widgets) to load both.   But in both cases its one path.


-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@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