Hi all,
I'm playing around with sqlalchemy for a new project and it's really
great :) ... up to now.
I'm in front of a problem:
let's say I have several classes:
class ParameterDefinition(Base):
__tablename__ = "ParameterDefinitions"
__table_args__ = {'mysql_engine':'InnoDB'}
Type = Column(Integer, nullable = False)
ImplementingParameters = relation("Parameter", backref =
"ParameterDefinition", cascade = "all, delete-orphan")
class Parameter(Base):
__tablename__ = "Parameters"
__table_args__ = {'mysql_engine':'InnoDB'}
__mapper_args__ = {'polymorphic_on': ParameterDefinition.Type}
Id = Column(Integer, primary_key = True)
PId = Column(Integer, ForeignKey("ParameterDefinitions.PId"),
nullable = False)
class BooleanParameter(Parameter):
__mapper_args__ = {'polymorphic_entity':'0'}
BooleanValue = Column(Boolean)
class IntegerParameter(Parameter):
__mapper_args__ = {'polymorphic_entity':'1'}
IntegerValue = Column(Integer)
IntegerBump = Column(Integer)
class StringParameter(Parameter):
__mapper_args__ = {'polymorphic_entity':'2'}
StringValue = Column(String(256))
Of course, this fails as in the polymorphism definition,
ParameterDefinition.Type is not defined for Parameter.
So the question is, how could I discriminate on the value of the
result of a join to get the mapper to instanciate the correct object ?
Thanks in advance for any advice!
--
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.