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.

Reply via email to