Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- address_table = sa.Table('address', metadata,
- sa.Column('addr_id', sa_types.Integer, primary_key=True),
- sa.Column('text', sa_types.Unicode),
- sa.Column('created', sa_types.DateTime, default=datetime.now),
- sa.Column('updated', sa_types.DateTime, default=datetime.now, onupdate=datetime.now),
- )
- class Address(object):
- def __init__(self, text=None, addr_id=None):
- self.text = text
- self.addr_id = addr_id
- address_mapper = orm.mapper(Address, address_table)
- class Person(DBObject):
- __tablename__ = 'person'
- #_primary_key_name = 'person_id'
- _shoji_attr_blacklist_ = {
- 'body': ['ptype', 'baddr_id', 'maddr_id'],
- 'catalogs': ['billing_address_record', 'mailing_address_record']
- }
- person_id = sa.Column(sa_types.Integer, primary_key=True)
- ptype = sa.Column(sa_types.String(10), nullable=False)
- fname = sa.Column(sa_types.Unicode(63))
- lname = sa.Column(sa_types.Unicode(63))
- mi = sa.Column(sa_types.Unicode(5))
- dname = sa.Column(sa_types.Unicode(255)) #Display name
- maddr_id = sa.Column(sa_types.Integer, sa.ForeignKey('address.addr_id'))
- baddr_id = sa.Column(sa_types.Integer, sa.ForeignKey('address.addr_id'))
- created = sa.Column(sa_types.DateTime, default=datetime.now)
- updated = sa.Column(sa_types.DateTime, default=datetime.now, onupdate=datetime.now)
- #....
- # Has to show up below the definition of ptype
- __mapper_args__ = {
- 'polymorphic_on': ptype,
- 'polymorphic_identity': 'Person'
- }
- # association proxies
- mailing_address = association_proxy('mailing_address_record', 'text')
- billing_address = association_proxy('billing_address_record', 'text')
Add Comment
Please, Sign In to add comment