On 4/3/07, Sébastien LELONG <[EMAIL PROTECTED]> wrote:
> > I dont have any code for this. Isn't that what a many-many relation is
> > supposed to do?
> many-to-many relation says "Article can have one or more ArticleRelated, and
> ArticleRelated can have one or more Article". You just declare the
> cardinality. You don't declare the direction. This is done while:
>
> c = ArticleRelatedArticle(article_id=a.id, related_id=b.id)
> a.related.append(c)
>
>
> > My problem is, if only one row is added, like 1=>2...
> > A1.related will have A2 as an object, but A2.related is empty. how do
> > i make it both ways??
> Well you should declare it in your code. Something like:
>
> c = ArticleRelatedArticle(article_id=a.id, related_id=b.id) # a => b
> d = ArticleRelatedArticle(article_id=b.id, related_id=a.id) # b => a
> a.related.append(c)
> b.related.append(d)
>
>
Hi, This is causing very messy code though, especially if youa re
deleteing an article. Here is now i have it now. The flush is needed,
or else i get an AssertionError saying SA is trying to flush 0 into a
primary_key.
def removeRelated(self, article_id):
rList = ArticleRelatedArticle.select(
or_(and_(ArticleRelatedArticle.c.related_id==self.id,
ArticleRelatedArticle.c.article_id==article_id),
and_(ArticleRelatedArticle.c.related_id==article_id,
ArticleRelatedArticle.c.article_id==self.id)
)
)
for r in rList:
r.delete()
session.flush()
And the article itself is removed like this:
def remove(self):
try:
self.msgBoard[0].delete()
except:
pass
self.removeRelated(self.id)
self.delete()
does this look ok to you guys? Or, can i do this in a better way?
>
> Hope it helps.
>
> Cheers.
>
> Seb
> --
> Sébastien LELONG
> http://www.sirloon.net
> sebastien.lelong[at]sirloon.net
>
thanks!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---