Thanks so much for the help. For the record, setting an __init__ argument on the association argument did the trick.
Ben On 2 Aug 2011, at 01:47, Michael Bayer <mike...@zzzcomputing.com> wrote: > > On Aug 1, 2011, at 8:34 PM, somewhatofftheway wrote: > >> Hi, >> >> I'm trying to convert a 'simple' many-to-many relationship to an >> association object in order to allow the relationship to have >> attributes. I've followed the code in examples/association/ >> proxied_association.py fairly closely (or so I thought) but it isn't >> working for me. >> >> As an example, let's say I am trying to create a relationship between >> an RSS feed and the pages from the feed but I want a feed_date on the >> relationship. Currently, my code look something like this: >> >> class Page (Base): >> __tablename__ = 'pages' >> id = Column(Integer, primary_key=True) >> >> posts = relationship("Post", cascade="all, delete-orphan", >> backref='pages') >> feeds = association_proxy("feeds", "feed") >> >> >> class Post(Base) >> __tablename__ = 'pages_feeds' >> page_id = Column(Integer, ForeignKey('pages.id'), >> primary_key=True) >> feed_id = Column(Integer, ForeignKey('feeds.id'), >> primary_key=True) >> feed = relationship(Feed, lazy='joined') >> >> I haven't changed the Feed class at all. >> >> When I do something along the lines of: >> >> page = Page() >> feed = Feed() >> page.feeds.append(feed) >> >> the query that is issued is as follows: >> >> IntegrityError: (IntegrityError) pages_feeds.feed_id may not be NULL >> u'INSERT INTO pages_feeds (page_id) VALUES (?)' (1,) >> >> So, clearly I have missed out the part of the config that explains >> that adds in the second foreign key. Could anybody point me to where >> please? > > you need a constructor and/or creator that generates Post() with the "feed" > attached to it, like def __init__(self, feed): self.feed = feed, then the > assoc proxy with creator=Post. > > -- > 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. > -- 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.