我在 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())

现在警告消失了。