On 9/27/07, jawarumnur <[EMAIL PROTECTED]> wrote:
> I think the problem is, that there are two columns ("mother" and
> "father") with a foreign-key that reference the same table.
> sqlalchemie doesn't seem to know, which one to use for which property
> (well, thats quite consequential, as I didn't tell it, which foreign-
> key belongs to which property...).

SQLAlchemy can definitely do this, i.e. have two foreign keys
referencing the same table. I've done something similar.

I'm a little rusty and this is non-tested written-directly-in-email:

persons = Table("persons", meta,
    Column("person_id", Integer, primary_key=True),
    Column("name", Unicode(128), nullable=False),
    Column("is_male", Boolean, nullable=False),
    Column("mother_id", Integer, ForeignKey("persons.person_id")),
    Column("father_id", Integer, ForeignKey("persons.person_id"))
)

class Person(object):

    get_children(self):
        if self.is_male:
            return self.children_father
        else:
            return self.children_mother

    add_child(self, child):
        if self.is_male:
            child.father = self
        else:
            child.mother = self

mapper(Person, persons, properties={
    'mother': relation(Person,
               primaryjoin=persons.c.person_id==persons.c.mother_id,
               backref='children_mother'),
    'father': relation(Person,
               primaryjoin=persons.c.person_id==persons.c.father_id,
               backref='children_father')
})


Arnar

--~--~---------~--~----~------------~-------~--~----~
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