python - SQLAlchemy column_property 基础知识

标签 python orm sqlalchemy declarative

我有两个模型:

class Report(Base):
    __tablename__ = 'report'
    id = Column(Integer, primary_key=True)

class ReportPhoto(Base):
    __tablename__ = 'report_photo'
    id = Column(Integer, primary_key=True)
    report_id = Column(Integer, ForeignKey(Report.id), nullable=False)

    report = relationship(Report, uselist=False, backref=backref('report_photo', uselist=True))

我想在 Report 模型中添加列,指示 ReportPhoto 中是否有任何记录。我尝试使用 column_property这样:

class Report(Base):
    __tablename__ = 'report'
    id = Column(Integer, primary_key=True)

    has_photo = column_property(
        select(ReportPhoto.any())
    )

但出现错误 NameError: name 'ReportPhoto' is not defined。我该如何解决这个问题?

最佳答案

类似的东西应该可以工作:

    class ReportPhoto(Base):
        __tablename__ = 'report_photo'
        id = Column(Integer, primary_key=True)
        report_id = Column(Integer, ForeignKey('report.id'), nullable=False)

    class Report(Base):
        __tablename__ = 'report'
        id = Column(Integer, primary_key=True)
        report_photos = relationship(ReportPhoto, backref='report')
        has_photo = column_property(
            exists().where(ReportPhoto.report_id==id)
        )

关于python - SQLAlchemy column_property 基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12171189/

相关文章:

java - transactionManager 应该使用哪个 SessionFactory?

python - sqlalalchemy postgresql 插入语句忽略重复项

python - 如何在 python 中处于详细模式的正则表达式对象中使用变量?

python - 将列标题转换为观察 Pandas

python - 如何在 Pandas 选定列数据框中应用具有多个参数的函数

mysql - sails .js : Waterline foreign key association missing in MySQL

python - 跨多个版本创建 conda 包

python - 动态添加group by子句到sql alchemy

python - SQLAlchemy 强制 in_() 使用文字

python - SQLAlchemy/PostgreSQL 可变、去重数组