我在 SQLAlchemy 模型和列 属性 中做错了什么?
What am I doing wrong in my SQLAlchemy model and column property?
在我的 Flask + SQLAlchemy 应用程序中,我有 - 除了其他人 - 这两个数据库 tables/models:
class Client(db.Model):
__tablename__ = "clients"
id = Column(Integer, primary_key=True)
client_name = Column(String, nullable=False, unique=True)
information = Column(String)
class ImageDataSet(db.Model):
__tablename__ = "image_data_sets"
id = Column(Integer, primary_key=True)
client_id = Column(Integer, ForeignKey("clients.id"), nullable=False)
client = db.column_property(db.select([Client.client_name]).where(Client.id == client_id))
所以换句话说,我想在我的模型 ImageDataSets
中有一个属性 client
,基于 Client
model/table 的 client_id
。然而,这有效,当启动应用程序时,我收到以下警告,因为我调用 db.column_property
:
SAWarning: implicitly coercing SELECT object to scalar subquery; please use the .scalar_subquery() method to produce a scalar subquery.
知道我做错了什么吗?
感谢 我通过将列 属性 更改为以下内容解决了这个问题:
client = db.column_property(db.select([Client.client_name]).where(Client.id == client_id).scalar_subquery())
现在警告消失了。
在我的 Flask + SQLAlchemy 应用程序中,我有 - 除了其他人 - 这两个数据库 tables/models:
class Client(db.Model):
__tablename__ = "clients"
id = Column(Integer, primary_key=True)
client_name = Column(String, nullable=False, unique=True)
information = Column(String)
class ImageDataSet(db.Model):
__tablename__ = "image_data_sets"
id = Column(Integer, primary_key=True)
client_id = Column(Integer, ForeignKey("clients.id"), nullable=False)
client = db.column_property(db.select([Client.client_name]).where(Client.id == client_id))
所以换句话说,我想在我的模型 ImageDataSets
中有一个属性 client
,基于 Client
model/table 的 client_id
。然而,这有效,当启动应用程序时,我收到以下警告,因为我调用 db.column_property
:
SAWarning: implicitly coercing SELECT object to scalar subquery; please use the .scalar_subquery() method to produce a scalar subquery.
知道我做错了什么吗?
感谢
client = db.column_property(db.select([Client.client_name]).where(Client.id == client_id).scalar_subquery())
现在警告消失了。