Hi,
I'm trying to use polymorphic_on with several inheritances:
engine = create_engine(
'mysql://xxx:y...@localhost:3306/zzz?charset=utf8&use_unicode=0',
pool_recycle=3600, echo=True)
Base = declarative_base()
class AbstractPersistent(object):
version = Column('VERSION', Integer)
last_modified_by = Column('LAST_MODIFIED_BY', String(255))
last_modified_date = Column('LAST_MODIFIED_DATE', Date)
created_by = Column('CREATED_BY', String(255))
created_date = Column('CREATED_DATE', Date)
class AbstractNamed(AbstractPersistent):
eid = Column('ENTERPRISE_ID', String(255))
title = Column('TITLE', String(255))
description = Column('DESCRIPTION', String(255))
class AbstractContainer(AbstractNamed):
__tablename__ = 'CM_MEMBER_CONTAINER_T'
id = Column('MEMBER_CONTAINER_ID',Integer,primary_key=True)
discriminator = Column('CLASS_DISCR', String(100))
__mapper_args__ = {'polymorphic_on': discriminator }
class CourseSet(Base,AbstractContainer):
__mapper_args__ = {'polymorphic_identity':
'org.sakaiproject.coursemanagement.impl.CourseSetCmImpl'}
As you can see, `CourseSet` contains all the columns of its parents
and has the column `CLASS_DISCR` sets to
`'org.sakaiproject.coursemanagement.impl.CourseSetCmImpl'`.
But when it make a query fro all `CourseSet`:
Session = sessionmaker(bind=engine)
session = Session()
course_sets = session.query(CourseSet).all()
print(course_sets)
It returns all the entries of `'CM_MEMBER_CONTAINER_T'`, but I want
only the ones with `CLASS_DISCR` set to
`'org.sakaiproject.coursemanagement.impl.CourseSetCmImpl'`
Any ideas ? I'm using version 0.6.4
Julien.
--
"Trouble-a-cat limited"
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" 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/sqlalchemy?hl=en.