[Sqlalchemy-tickets] [sqlalchemy] #2950: abstractconcretebase polish
Brought to you by:
zzzeek
|
From: sqlalchemy <mi...@zz...> - 2014-02-10 05:58:21
|
#2950: abstractconcretebase polish
-------------------------+------------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: defect | Status: new
Priority: medium | Milestone: 0.9.3
Component: declarative | Severity: major - 1-3 hours
Keywords: | Progress State: in queue
-------------------------+------------------------------------
seems to not be putting the class name into declarative registry:
{{{
#!python
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base,
AbstractConcreteBase
Base = declarative_base()
class A(Base):
__tablename__ = 'a'
id = Column(Integer, primary_key=True)
class BC(AbstractConcreteBase, Base):
pass
class B(BC):
__tablename__ = 'b'
id = Column(Integer, primary_key=True)
a_id = Column(Integer, ForeignKey('a.id'))
__mapper_args__ = {
"polymorphic_identity": "b",
"concrete": True
}
class C(BC):
__tablename__ = 'c'
id = Column(Integer, primary_key=True)
a_id = Column(Integer, ForeignKey('a.id'))
__mapper_args__ = {
"polymorphic_identity": "c",
"concrete": True
}
# fails
#A.collection = relationship("BC", primaryjoin="BC.a_id == A.id")
# workaround
configure_mappers()
A.collection = relationship(BC, primaryjoin=BC.a_id == A.id)
}}}
check if there's a dupe for this also
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2950>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|