diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-02-10 17:43:37 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-02-10 17:44:09 -0500 |
commit | 50d60cfb994523176c26d3b25bd8fb282869b100 (patch) | |
tree | 4d73e98fea988ab16de0c0f52e390bbb9ee4d9a0 | |
parent | 0470c5c5a68b8244ec3e881199bf6ddc4ca94fa3 (diff) | |
download | sqlalchemy-50d60cfb994523176c26d3b25bd8fb282869b100.tar.gz |
this example doesn't work, we don't really have a solution for this as far as automating this pattern
-rw-r--r-- | lib/sqlalchemy/ext/declarative/__init__.py | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/lib/sqlalchemy/ext/declarative/__init__.py b/lib/sqlalchemy/ext/declarative/__init__.py index b92adf02b..fecfba850 100644 --- a/lib/sqlalchemy/ext/declarative/__init__.py +++ b/lib/sqlalchemy/ext/declarative/__init__.py @@ -1076,37 +1076,6 @@ inheritance:: primary_language = Column(String(50)) __mapper_args__ = {'polymorphic_identity': 'engineer'} -If you want to use a similar pattern with a mix of single and joined -table inheritance, you would need a slightly different mixin and use -it on any joined table child classes in addition to their parent -classes:: - - from sqlalchemy.ext.declarative import declared_attr - from sqlalchemy.ext.declarative import has_inherited_table - - class Tablename(object): - @declared_attr - def __tablename__(cls): - if (has_inherited_table(cls) and - Tablename not in cls.__bases__): - return None - return cls.__name__.lower() - - class Person(Tablename, Base): - id = Column(Integer, primary_key=True) - discriminator = Column('type', String(50)) - __mapper_args__ = {'polymorphic_on': discriminator} - - # This is single table inheritance - class Engineer(Person): - primary_language = Column(String(50)) - __mapper_args__ = {'polymorphic_identity': 'engineer'} - - # This is joined table inheritance - class Manager(Tablename, Person): - id = Column(Integer, ForeignKey('person.id'), primary_key=True) - preferred_recreation = Column(String(50)) - __mapper_args__ = {'polymorphic_identity': 'engineer'} Combining Table/Mapper Arguments from Multiple Mixins ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |