this is fixed in r462bd17d7ea2 however you'll want to use __mapper_args__ and
not "mapper_args" in your classes, also the issue only exists if you didn't
specify "inherits" yourself, so since you're already explicitly referencing the
superclass you can work around easily by saying:
__mapper_args__ = {
'inherits':foo.Foo
}
On Jun 14, 2011, at 9:04 AM, Filip Zyzniewski - Tefnet wrote:
> import sqlalchemy
> import sqlalchemy.ext.declarative
>
> Base = sqlalchemy.ext.declarative.declarative_base()
>
> engine = sqlalchemy.create_engine('sqlite:///:memory:', echo = False)
>
> session = sqlalchemy.orm.scoped_session(
> sqlalchemy.orm.sessionmaker(
> bind = engine,
> autocommit = False
> )
> )
>
> Base.metadata.bind = engine
>
> class SomeObj(Base):
> __tablename__ = "someobj"
> Id = sqlalchemy.Column( sqlalchemy.types.Integer, primary_key=True,
> autoincrement=True)
> objType = sqlalchemy.Column(sqlalchemy.types.String(128), index =
> True, nullable = False)
> __mapper_args__ = {
> 'polymorphic_identity': __tablename__,
> 'polymorphic_on': objType
> }
>
> import bar
>
>
> =======================================> foo.py <==
> import sqlalchemy
> import names
>
> class Foo(names.SomeObj):
> __tablename__ = 'foo_foo'
>
> Id = sqlalchemy.Column(
> sqlalchemy.types.Integer(),
> sqlalchemy.schema.ForeignKey(names.SomeObj.Id),
> primary_key = True
> )
>
> mapper_args = {
> 'inherit_condition': Id == names.SomeObj.Id,
> 'polymorphic_identity': __tablename__,
> }
>
>
> =======================================> bar.py <==
> import sqlalchemy
> import foo
>
> class Foo(foo.Foo):
> __tablename__ = 'bar_foo'
>
> Id = sqlalchemy.Column(
> sqlalchemy.types.Integer(),
> sqlalchemy.schema.ForeignKey(foo.Foo.Id),
> primary_key = True
> )
>
> mapper_args = {
> 'inherit_condition': Id == foo.Foo.Id,
> 'polymorphic_identity': __tablename__,
> }
>
> =====================================
--
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.