On Aug 2, 8:31 am, "Diez B. Roggisch" <[EMAIL PROTECTED]>
wrote:
> Chris Curvey schrieb:
>
> > I can't believe this is not a FAQ, but my Google skills are failing me
> > at finding an answer.
>
> > If I have a hierarchy of categories, and my model looks like this:
>
> > class Category(SQLObject):
> > name = UnicodeCol(length=100)
> > parent = ForeignKey("Category")
>
> > How do I create a method on Category so that I can retrieve all the
> > children for a Category instance? I have a feeling that it has
> > something to do with Alias, but I can't quite get the incantation.
>
> You should simple be able to define a MultipleJoin to itself. Like this:
>
> class Category(SQLObject):
> parent = ForeignKey("Category")
> children = MultipleJoin("Category")
>
> I didn't test that, it might be that you need to give the
> joinColumn-attribute with "parent_id" or something.
>
> Alternatively, you should be able to implement a method like this:
>
> def children(self):
> return list(Category.select(Category.q.parentID == self.id))
>
> No alias nowhere...
>
Wow, I guess that was too simple for me to get my brain around. Or it
was too late at night :)
Anyway, the solution is:
class Category(SQLObject):
name = UnicodeCol(length=100)
parent = ForeignKey("Category")
children = MultipleJoin("Category", joinColumn="parent_id")
Thanks very much!
> Diez
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" 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/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---