diff options
Diffstat (limited to 'doc/build')
| -rw-r--r-- | doc/build/changelog/migration_10.rst | 15 | ||||
| -rw-r--r-- | doc/build/orm/extensions/declarative/mixins.rst | 8 |
2 files changed, 11 insertions, 12 deletions
diff --git a/doc/build/changelog/migration_10.rst b/doc/build/changelog/migration_10.rst index f539d8b94..3a6bf06a9 100644 --- a/doc/build/changelog/migration_10.rst +++ b/doc/build/changelog/migration_10.rst @@ -163,18 +163,17 @@ is affixed to the base class only, and just inherited from subclasses. With :attr:`.declared_attr.cascading`, individual behaviors can be applied:: - class HasSomeAttribute(object): + class HasIdMixin(object): @declared_attr.cascading - def some_id(cls): + def id(cls): if has_inherited_table(cls): - return Column(ForeignKey('myclass.id'), primary_key=True) + return Column('id', Integer, primary_key=True) else: - return Column(Integer, primary_key=True) + return Column('id', Integer, ForeignKey('myclass.id'), + primary_key=True) - return Column('id', Integer, primary_key=True) - - class MyClass(HasSomeAttribute, Base): - "" + class MyClass(HasIdMixin, Base): + __tablename__ = 'myclass' # ... class MySubClass(MyClass): diff --git a/doc/build/orm/extensions/declarative/mixins.rst b/doc/build/orm/extensions/declarative/mixins.rst index e4acc8750..20459bf75 100644 --- a/doc/build/orm/extensions/declarative/mixins.rst +++ b/doc/build/orm/extensions/declarative/mixins.rst @@ -466,17 +466,17 @@ foreign key. We can achieve this as a mixin by using the function should be invoked **for each class in the hierarchy**, just like it does for ``__tablename__``:: - class HasId(object): + class HasIdMixin(object): @declared_attr.cascading def id(cls): if has_inherited_table(cls): + return Column('id', Integer, primary_key=True) + else: return Column('id', Integer, ForeignKey('person.id'), primary_key=True) - else: - return Column('id', Integer, primary_key=True) - class Person(HasId, Base): + class Person(HasIdMixin, Base): __tablename__ = 'person' discriminator = Column('type', String(50)) __mapper_args__ = {'polymorphic_on': discriminator} |
