python sqlalchemy pyramid

python - ArgumentError: la relación espera un argumento de clase o asignador



sqlalchemy pyramid (1)

No estoy contento conmigo mismo, ya que es un error tan tonto, pero aquí está mi culpable:

report_type = relationship(''tReportType'', uselist=False, backref=backref(''report''))

debiera ser:

report_type = relationship(''TReportType'', uselist=False, backref=backref(''report''))

T mayúscula en lugar de t, debería estar haciendo referencia a la clase, no a mi nombre de tabla real: ''tReportType'' -> ''TReportType''

Recibo este extraño error y lo digo extraño porque hice un cambio a una tabla no relacionada.

Estoy tratando de consultar mi tabla tDevice que se ve así:

class TDevice(Base): __tablename__ = ''tDevice'' ixDevice = Column(Integer, primary_key=True) ixDeviceType = Column(Integer, ForeignKey(''tDeviceType.ixDeviceType''), nullable=False) ixSubStation = Column(Integer, ForeignKey(''tSubStation.ixSubStation''), nullable=False) ixModel = Column(Integer, ForeignKey(''tModel.ixModel''), nullable=True) ixParentDevice = Column(Integer, ForeignKey(''tDevice.ixDevice''), nullable=True) sDeviceName = Column(Unicode(255), nullable=False)#added children = relationship(''TDevice'', backref=backref(''parent'', remote_side=[ixDevice])) device_type = relationship(''TDeviceType'', backref=backref(''devices'')) model = relationship(''TModel'', backref=backref(''devices'')) sub_station = relationship(''TSubStation'', backref=backref(''devices''))

Y así es como lo pregunto:

Device = DBSession.query(TDevice).filter(TDevice.ixDevice == device_id).one()

Tan pronto como se ejecuta esta línea, me aparece el error:

ArgumentError: relationship ''report_type'' expects a class or a mapper argument (received: <class ''sqlalchemy.sql.schema.Table''>)

Los únicos cambios que he realizado es agregar una relación tipo_de_informe en mi tReportTable que ahora se ve así:

class TReport(Base): __tablename__ = ''tReport'' ixReport = Column(Integer, primary_key=True) ixDevice = Column(Integer, ForeignKey(''tDevice.ixDevice''), nullable=False) ixJob = Column(Integer, ForeignKey(''tJob.ixJob''), nullable=False) ixReportType = Column(Integer, ForeignKey(''tReportType.ixReportType''), nullable=False) # added report_type = relationship(''tReportType'', uselist=False, backref=backref(''report'')) device = relationship(''TDevice'', uselist=False, backref=backref(''report'')) job = relationship(''TJob'', uselist=False, backref=backref(''report''))

Todavía soy nuevo en SqlAlchemy, así que parece que no veo cómo agregar esa relación debería estar causando este error si estoy iterando otra tabla.