I'm certain sqlalchemy's got a function call in its guts that I was about to recreate from scratch, so I'm hoping you can spare me the trouble.
I'm trying to construct the foreign key where clause and from clause needed to populate a relation. I'd explain how I got here, but might take several days, so instead, is there a function call to help me? In other words, I've got an object, for example an order: =================================== orderdetail_table = Table("orderdetails",metadata, Column("orderid", Unicode, ForeignKey('orders.orderid'), primary_key=True), Column("lineid", Integer, primary_key=True), Column("saleprice", Numeric, nullable=False), Column("productid", Unicode(255), ForeignKey('products.productid'), nullable=False) ) product_table = Table("products", metadata, Column("productid", Unicode(255), primary_key=True), Column("brand", Unicode(255), ... ) class Order(object): pass class OrderDetail(object): pass # ---------------------------- OrderDetail -------------------------------------------------------- # orderdetail_mapper = mapper(OrderDetail, orderdetail_table, allow_null_pks=False, properties=dict(product=relation(Product, cascade='refresh-expire,expunge', #don't save changes to Product lazy=False))) ===================== Say the 'product' relation is not populated on a *transient* OrderDetail object that I will not be issuing a session flush() for (there are errors detected.. but that's the long story). I want to populate the transient OrderDetails 'product' attribute with the detached product. I assume there is no way a refresh of the 'product' attribute will accomplish this since the parent obj is transient (which would really be what I want), so I am also assuming I'll need to build the pk clause and issue a session.query.get(). Since this is dynamic code (accepting any sqla object), I need to dynamically construct that pk clause and from clause based on the mapper's RelationProperty. In other words, use _foreign_keys to construct this ? But I imagine there is already a function call that will get me what I want. In the end, for this example, I'd want to dynamically build session.query(Product).filter( * pk clause based on fks *) Is there a function that can get me most everything I want (return the pk clause) or must I build that up myself, and if myself, do you recommend the RelationProperty's _foreign_keys attribute as the starting point? Thanks in advance, again. -- 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.