The thing is that "Content" is a kind of abstract, I never add "Content"
directly but rather objects which inherits of "Content".

I'll take a look at your scripts, thanks !

Julien

On Tue, 2008-12-09 at 16:06 +0200, [EMAIL PROTECTED] wrote:
> more things, u have polymorhism, but u do not specify identity for 
> Content; and things that look like many to one are one to many 
> (type).
> 
> attached is the model as i understood it, expressed in dbcook; and the 
> SA-setup generated by it (tables+mappers). see for yourself if u have 
> anything else missing. i guess most verbose primary_join/remote_side 
> etc are not needed but it does fill them always.
> 
> 
> On Tuesday 09 December 2008 15:44:07 Julien Cigar wrote:
> > On Tue, 2008-12-09 at 13:05 +0200, [EMAIL PROTECTED] wrote:
> > > not sure if that is the problem, but are Folder.items and
> > > FolterContent.folder the reciprocal ends of same relation?
> > > then u need only one of those, with backref.
> >
> > Hi,
> >
> > "Folder" is a "Content". A "Folder" can contains one or more
> > "Content" through the "folder_content" table which is represented
> > by the "FolderContent" association object, so FolderContent has a
> > reference to a "Content" and a "Folder" (which is a "Content").
> > It's this "FolderContent" list which is accessible through the
> > "Folder.items" property. In "FolderContent" I'd like to have a
> > property to the corresponding "Content" and the corresponding
> > "Folder" (which is a "Content", I suspect that the problem is
> > here). So in my "FolderContent" mapper I added 'content' :
> > relation(Content), which works. However 'folder' : relation(Folder)
> > doesn't (although foreign keys are there, and I presume that
> > SQLAlchemy use them to detect join points ..), so I wonder why it
> > works for one and not for the other .. :)
> >
> > It sounds a bit complicated on paper, but in fact it's very simple.
> >
> > Thanks,
> > Julien
> >
> > > On Tuesday 09 December 2008 12:08:02 Julien Cigar wrote:
> > > > Dear SQLAlchemy users,
> > > >
> > > > I'm playing with inheritance for a CMS-like application. It's
> > > > very usefull as it greatly simplifies the code.
> > > >
> > > > Here is my SQL script http://pastebin.com/f7c5297c8 and here is
> > > > my python code (mappers, etc) http://pastebin.com/f1e2738ba
> > > > (Not everything is shown...)
> > > >
> > > > As you can see, everything inherits from a "Content". "Folder"
> > > > are special "Content" which act as containers for one or more
> > > > "Content" through the "FolderContent" object (folder_content
> > > > table).
> > > >
> > > > The problem is at line 128 of the second paste, SQLAlchemy is
> > > > unable to determine the join condition to the "Folder"
> > > > ("folder" table) which seems strange because folder_content
> > > > table has explicitely a foreign key to the "folder" table (line
> > > > 70 of the first paste).
> > > >
> > > > When I try to get a specific FolderContent through :
> > > > >>> model.FolderContent.query.get((12,6))
> > > >
> > > > I get a:
> > > >
> > > > "ArgumentError: Could not determine join condition between
> > > > parent/child tables on relation FolderContent.folder.  Specify
> > > > a 'primaryjoin' expression.  If this is a many-to-many
> > > > relation, 'secondaryjoin' is needed as well."
> > > >
> > > > My question is: do I need to explicitely specify the join
> > > > condition when inheritance is involved ? Why is SQLAlchemy able
> > > > to detect the join condition for my "Content" (line 127) but
> > > > not for my "Folder" (line 128) ?
> > > >
> > > > In advance thanks for your answers
> > > >
> > > > Best regards,
> > > > Julien
> 
> 
> 
> > 
-- 
Julien Cigar
Belgian Biodiversity Platform
http://www.biodiversity.be
Université Libre de Bruxelles (ULB)
Campus de la Plaine CP 257
Bâtiment NO, Bureau 4 N4 115C (Niveau 4)
Boulevard du Triomphe, entrée ULB 2
B-1050 Bruxelles
Mail: [EMAIL PROTECTED]
@biobel: http://biobel.biodiversity.be/person/show/471
Tel : 02 650 57 52


--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to