Hi,

I'm trying to declare a adjacency list as follow:

class CourseSet(AbstractContainer):
    parent_id = Column('PARENT_COURSE_SET', Integer,
ForeignKey('CM_MEMBER_CONTAINER_T.ENTERPRISE_ID'))
    children = relationship("CourseSet", backref=backref('parent',
remote_side=AbstractNamed.eid))

    @classproperty
    def __mapper_args__(self):
        args = dict()
        args.update(AbstractContainer.__mapper_args__)
        args.update({'polymorphic_identity':
'org.sakaiproject.coursemanagement.impl.CourseSetCmImpl'})
        return args

But I couldn't succeed, i've the following error message:

sqlalchemy.exc.ArgumentError: Relationship CourseSet.parent could not
determine any local/remote column pairs from remote side argument
set([Column('ENTERPRISE_ID', String(length=255, convert_unicode=False,
assert_unicode=None, unicode_error=None,
_warn_on_bytestring=False), )])

I've tried to use 
http://www.sqlalchemy.org/docs/orm/relationships.html#adjacency-list-relationships
but with no success. The only "not-classical" thing is the use of
AbstractNamed.eid (a field from a parent class), is there an impact ?

Cheers,

Julien.

PS: other parent objects:

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)

    def __repr__(self):
        return "<AbstractPersistent('%s','%s', '%s','%s','%s')>" % \
            (self.version, self.last_modified_by,
self.last_modified_date,
            self.created_by, self.created_date)

class AbstractNamed(AbstractPersistent):
    eid = Column('ENTERPRISE_ID', String(255))
    title = Column('TITLE', String(255))
    description = Column('DESCRIPTION', String(255))

    def __repr__(self):
        return "<AbstractNamed('%s','%s', '%s')>" % \
            (self.eid, self.title, self.description) + \
                super(AbstractNamed, self).__repr__()


class AbstractContainer(Base,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 }

-- 
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