使用flask-sqlalchemy,我想创建一些类来继承声明性类并添加__bind_key__
。这样我就可以创建一些表并继承这些绑定类。
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Model1(db.Model):
__bind_key__ = 'db2'
class Table1(Model1):
__tablename__ = 'table1'
name = db.Column(db.String(100))
但我遇到了一些麻烦:
sqlalchemy.exc.InvalidRequestError: Class <class '__main__.Model1'>
does not have a __table__ or __tablename__ specified
and does not inherit from an existing table-mapped class.
我怎么解决?
答案 0 :(得分:5)
您还可以使用__abstract__
标志:
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Model1(db.Model):
__abstract__ = True
__bind_key__ = 'db2'
class Table1(Model1):
__tablename__ = 'table1'
name = db.Column(db.String(100))
SQLAlchemy声明(docs here)忽略__abstract__
设置为True
的类。作为奖励,您可以将SQLAlchemy特定属性(例如列)添加到Model1
。