【问题标题】:Why column name with Many to Many relationship doesn't get retrieved? SQLAlchemy为什么没有检索到具有多对多关系的列名? SQL炼金术
【发布时间】:2020-04-07 11:22:26
【问题描述】:

我有以下型号:

class Actividad(Base):
    __tablename__ = "Actividad"

    codigo = Column(Integer, primary_key=True, unique=True)
    productos = relationship("Producto_Actividad")
    total = Column(Float)

在“productos”字段中与另一个模型(称为“Producto”)具有多对多关系(通过名为“Producto_Actividad”的关联表)。

为了获取我正在使用的这个模型的对象的列:

Actividad.__mapper__.column_attrs.keys()

或者(作为模型的一个实例):

act.__table__.columns

不过,我得到了以下结果:

['codigo', 'total']

为什么我没有在结果集中获得“productos”字段?我需要在我的程序的另一部分中使用它。

【问题讨论】:

  • 用这么少的信息很难说清楚。请分享所有相关代码和数据。请参阅:minimal reproducible example、How to Ask。
  • 感谢您的提示。虽然,我已经收到了来自@Gord Thompson 的满意答复

标签: python sql database sqlalchemy


【解决方案1】:

为什么我没有在结果集中获得“productos”字段?

因为“Actividad”表中没有代表“productos”的列。该链接位于(单独的)关联表中,其中行将一个或多个“Producto_codigo”值与一个或多个“Actividad_codigo”值匹配。

【讨论】:

  • 感谢您的满意解释。我能够找到如何获取一个模型的所有字段(包括关联)。如果有人有兴趣:创建一个包含 Model.__mapper__.column_attrs 和 Model.__mapper__.relationships 的列表
猜你喜欢
  • 2014-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-18
  • 2022-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多