Greetings! I've known about sqlalchemy for a long time and have been interested in using it professionally for a while now. I finally have the chance to use it and have really been enjoying it. But it turns out that I am a little confused about the best way to handle m2m relationships that have additional fields.
Let's say we have 4 tables, User, Tag, Post, PostTagAssociation. PostTagAssociation has FKs of course, but also a tagged_at datetime field. I am familiar with association_proxy, but I prefer a different sort of interface. Something closer to dynamic_loader that would let me do things like: #querying across my dynamic_loader: post = test_user.posts.filter(Post. title.like('%geopolitic%')).first() #query through an association proxy, eg to get all posts tagged with war related keywords: #of course, this doesn't work since it returns an AssociationList instead of an AppenderQuery: post.tags.filter(Tag.name.like('%war%')) #and then i still want to be able to have the AssociationList functionality like: post.tags.append(Tag("peace")) post.tags.remove(Tag("war")) #what would be really amazing is if I could set it up to decorate #the returned item with some or all fields from the m2m table, eg: print post.tags.first().tagged_at # => 10/27/2009 21:24 This seems like it would be commonly desired functionality, so I am wondering if perhaps: a) I missed it, and there is some option already in sqlalchemy, or b) Someone already has created an extension that provides this. If not, I wonder if supplying a new query class to the query_class option of dynamic_loader might be able to accomplish this. Does that strategy make sense? Are there any examples around that supply a query_class to the dynamic_loader function? I couldn't find any, though I definitely might have missed them. I know it's also possible that am thinking about this all wrong, asking the wrong question since I am used to other kinds of ORMs. If so, I'd love to hear how experienced sqlalchemy users achieve this same sort of functionality (eg, do they manually add methods to their model classes that work directly with the association table and do a subquery, or something completely different?) Thank you so very much, and please excuse the long post. Best! Jared Nuzzolillo --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---