> -----Original Message-----
> From: sqlalchemy@googlegroups.com 
> [mailto:sqlalch...@googlegroups.com] On Behalf Of Jules Stevenson
> Sent: 13 July 2010 15:01
> To: sqlalchemy@googlegroups.com
> Subject: [sqlalchemy] Problem with Joined Table inheritance
> 
> Apologies for any stupidity, but I'm struggling with some joined table
> inheritance, I have the following code:
> 
> widgets_table = sa.Table('web_widgets', meta.metadata,
>     sa.Column('widget_id', sa.types.Integer, primary_key=True),
>     sa.Column('title',sa.types.String(length=255)),
>     sa.Column('widget_type', sa.types.String(30), nullable=False),
>     sa.Column('position', sa.types.Integer),
>     sa.Column('page_id', sa.types.Integer, 
> sa.ForeignKey('web_pages.id'))
> )
> 
> video_widget_table = sa.Table('web_video_widget', meta.metadata,
>     sa.Column('widget_id', sa.types.Integer,
> sa.ForeignKey('web_widgets.widget_id'), primary_key=True),
>     sa.Column('teaser', sa.types.String(length=10000)),
>     sa.Column('body',sa.types.String(length=21845)),
>     sa.Column('image', sa.types.String(length=256))
> )
> 
> class ArkWebWidget(object):
>     def __init__(self):
>         pass
> 
> class ArkWebVideoWidget(object):
>     def __init__(self):
>         pass
> 
> 
> orm.mapper(ArkWebWidget, widgets_table,
>            polymorphic_on=widgets_table.c.widget_type,
>            polymorphic_identity='widget'
> )
> 
> orm.mapper(ArkWebVideoWidget, video_widget_table,
>            inherits=ArkWebWidget,
>            polymorphic_identity='video_widget'
> )
> 
> ---------------------------
> 
> However, when I run this I get an error:
> 
> ...
>   File 
> "C:\ark\env_x64\lib\site-packages\sqlalchemy-0.6.2-py2.6.egg\s
> qlalchemy\o
> rm\__init__.py", line 818, in mapper
>     return Mapper(class_, local_table, *args, **params)
>   File 
> "C:\ark\env_x64\lib\site-packages\sqlalchemy-0.6.2-py2.6.egg\s
> qlalchemy\o
> rm\mapper.py", line 207, in __init__
>     self._configure_inheritance()
>   File 
> "C:\ark\env_x64\lib\site-packages\sqlalchemy-0.6.2-py2.6.egg\s
> qlalchemy\o
> rm\mapper.py", line 231, in _configure_inheritance
>     (self.class_.__name__, self.inherits.class_.__name__))
> sqlalchemy.exc.ArgumentError: Class 'ArkWebVideoWidget' does 
> not inherit from 'A
> rkWebWidget'
> 
> And I'm really not sure what I've done wrong, it seems ok based on
> what is written in the docs?
> 
> Any pointers much appreciated.
> 
> Jules
> 

I think the error message is quite explicit - you need to make your
ArkWebVideoWidget class inherit from ArkWebWidget. At the moment, it
inherits from 'object'.

http://www.sqlalchemy.org/docs/mappers.html#mapping-class-inheritance-hi
erarchies

Notice that the Manager and Engineer classes both inherit from Employee.

Hope that helps,

Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to