I should have mentioned that even when I was using lazyload() I was getting the same problem, but I think I corrected my problem with this:
o=DBSession.query(Order).options(lazyload(Order.orderdetails,OrderDetail.product)).get(u'SALE35425') I think I understand better now: is it correct that you need to "chain" the relations, but calling lazyload() is really only marking a single relation as lazy. For example, in the above call, I need 'Order.orderdetails' in order to *reach* 'OrderDetail.product', but it is *only* 'OrderDetail.product' that is being marked as lazy. 'Order.orderdetails' lazy status is unaffected, even though it is in the call to lazyload(). Is that accurate? On Mar 17, 4:05 pm, "Michael Bayer" <mike...@zzzcomputing.com> wrote: > Kent wrote: > > Does defer only relate to ColumnProperty while lazyload relates to > > RelationProperty? > > > Apparently I should be using lazyload() instead of defer()? > > that is the case at the moment yes. > > But I can see that perhaps defer() should be dual-purposed here. the > "eager/lazy" terminology used to be much more prominent in our > documentation so its only recently that this kind of thing had a chance of > getting confusing. > > > > > -- > > 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. > > -- 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.