[Sqlalchemy-tickets] Issue #3331: sqlalchemy 1.0.0b1 does not allow getting an declared_attr from d
Brought to you by:
zzzeek
|
From: Pieter M. <iss...@bi...> - 2015-03-18 15:20:09
|
New issue 3331: sqlalchemy 1.0.0b1 does not allow getting an declared_attr from declarative object https://bitbucket.org/zzzeek/sqlalchemy/issue/3331/sqlalchemy-100b1-does-not-allow-getting-an Pieter Mulder: The following code works without any problems in sqlalchemy 0.9.9 but fails in 1.0.0b1: ``` #!python import sqlalchemy as sa from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declared_attr Base = declarative_base() class Abstract1(object): @declared_attr def __tablename__(cls): return cls.__name__.lower() class Concrete1(Abstract1, Base): id = sa.Column(sa.Integer, primary_key=True) Abstract1.__tablename__ Concrete1.__tablename__ ``` The exception: ``` #! <ipython-input-8-1445e04c4c3b> in <module>() ----> 1 Concrete1.__tablename__ /home/pieter/.virtualenvs/proigia_encryption/lib/python2.7/site-packages/sqlalchemy/ext/declarative/api.pyc in __get__(desc, self, cls) 180 except KeyError: 181 raise exc.InvalidRequestError( --> 182 "@declared_attr called outside of the " 183 "declarative mapping process; is declarative_base() being " 184 "used correctly?") InvalidRequestError: @declared_attr called outside of the declarative mapping process; is declarative_base() being used correctly? ``` |