class Person(Entity):
    '''A person.'''
    
    __tablename__ = 'people'
    
    id = Column(Integer, ForeignKey('entities.id'), primary_key=True)
    
    first_name = Column(String(50))
    middle_name = Column(String(50))
    last_name = Column(String(50))
    
    date_of_birth = Column(Date)
    date_of_death = Column(Date)
    
    relationships = relationship('Relationship', 
foreign_keys='relationships.c.source_id')
    
    __mapper_args__ = {
        'polymorphic_identity': 'person'}

Missed the mapper args part of person.


On Thursday, April 17, 2014 10:02:54 AM UTC-7, Mats Nordgren wrote:
>
> class Entity(Base):
>     '''A base for entities.'''
>     
>     __tablename__ = 'entities'
>     
>     id = Column(Integer, Sequence('entity_id_seq'), primary_key=True)
>     type = Column(String(50))
>     
>     tax_id = Column(String(20))
>     
>     memberships = relationship('Membership')
>     
>     __mapper_args__ = {
>         'polymorphic_identity': 'entity',
>         'polymorphic_on': type}
>
> class Person(Entity):
>     '''A person.'''
>     
>     __tablename__ = 'people'
>     
>     id = Column(Integer, ForeignKey('entities.id'), primary_key=True)
>     
>     first_name = Column(String(50))
>     middle_name = Column(String(50))
>     last_name = Column(String(50))
>     
>     date_of_birth = Column(Date)
>     date_of_death = Column(Date)
>     
>     relationships = relationship('Relationship', 
> foreign_keys='relationships.c.source_id')
>
> class Relationship(Base):
>     '''A relationship.'''
>     
>     __tablename__ = 'relationships'
>     
>     source_id = Column(Integer, ForeignKey('people.id'), primary_key=True)
>     target_id = Column(Integer, ForeignKey('people.id'), primary_key=True)
>     relationship_type_id = Column(Integer, ForeignKey('
> relationship_types.id'), primary_key=True)
>     
>     from_date = Column(Date)
>     thru_date = Column(Date)
>     
>     notes = Column(Text)
>     
>     source = relationship('Person', foreign_keys=source_id)
>     target = relationship('Person', foreign_keys=target_id)
>     relationship_type = relationship('RelationshipType', 
> foreign_keys=relationship_type_id)
>
> class RelationshipType(Base):
>     '''A relationship type.'''
>     
>     __tablename__ = 'relationship_types'
>     
>     id = Column(Integer, Sequence('relationship_type_id_seq'), 
> primary_key=True)
>     
>     description = Column(String(50))
>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to