diff --git a/flaskext/sqlalchemy.py b/flaskext/sqlalchemy.py index a4ede2a6..a0f2178f 100644 --- a/flaskext/sqlalchemy.py +++ b/flaskext/sqlalchemy.py @@ -593,7 +593,8 @@ class User(db.Model): """ def __init__(self, app=None, use_native_unicode=True, - session_extensions=None, session_options=None): + session_extensions=None, session_options=None, + metaclass=None): self.use_native_unicode = use_native_unicode self.session_extensions = to_list(session_extensions, []) + \ [_SignallingSessionExtension()] @@ -606,6 +607,7 @@ def __init__(self, app=None, use_native_unicode=True, ) self.session = self.create_scoped_session(session_options) + self.metaclass = metaclass if metaclass else _BoundDeclarativeMeta self.Model = self.make_declarative_base() self._engine_lock = Lock() @@ -636,7 +638,7 @@ def make_declarative_base(self): """Creates the declarative base.""" base = declarative_base(cls=Model, name='Model', mapper=signalling_mapper, - metaclass=_BoundDeclarativeMeta) + metaclass=self.metaclass) base.query = _QueryProperty(self) return base