gpt4 book ai didi

python - 如何在不设置 __tablename__ 的情况下继承 SQLAlchemy 中的声明?

转载 作者:行者123 更新时间:2023-11-28 22:00:13 28 4
gpt4 key购买 nike

使用 flask-sqlalchemy,我想创建一些类来继承声明类并添加 __bind_key__。这样我就可以创建一些表并继承这些绑定(bind)类。

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.

我该如何解决?

最佳答案

您还可以使用 __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))

__abstract__ 设置为 True 的类会被 SQLAlchemy 声明式忽略(docs here)。作为奖励,这使您能够将 SQLAlchemy 特定属性(例如列)添加到您的 Model1

关于python - 如何在不设置 __tablename__ 的情况下继承 SQLAlchemy 中的声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15289342/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com