Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

536
Vistas
Error de relación de clase de asignación de SQLAlchemy

Me enfrento a este InvalidRequestError de que mis relaciones entre dos clases no están asignadas correctamente. Esta es una relación de uno (pregunta) a muchos (opción).

 from sqlalchemy.ext.declarative import declartive_base Base = declarative_base() class ChoiceModel(Base): __tablename__ = 'choice' id_seq = Sequence('choice_id_seq', metadata=Base.metadata) id = Column(Integer, id_seq, server_default=id_seq.next_value(), primary_key=True, index=True) choice_context = Column(Text, nullable=False) question_id = Column(Integer, ForeignKey('question.id')) question = relationship('QuestionModel', back_populates='choices') class QuestionModel(Base): __tablename__ = 'question' id_seq = Sequence('question_id_seq', metadata=Base.metadata) id = Column(Integer, id_seq, server_default=id_seq.next_value(), primary_key=True, index=True) correct = Column(Boolean, nullable=False) choice_list = Column(ARRAY(Integer)) choices = relationship("ChoiceModel", back_populates='question', cascade="all, delete-orphan")

Y el error que estoy recibiendo,

 sqlalchemy.exc.InvalidRequestError: When initializing mapper mapped class ChoiceModel->choice, expression 'Question' failed to locate a name ('Question'). If this is a class name, consider adding this relationship() to the <class 'project.core.models.choice_model.ChoiceModel'> class after both dependent classes have been defined.

He leído preguntas similares del documento oficial de SQLAlchemy en stackoverflow que la mayoría de ellos usaban un nombre de clase incorrecto o no tenían back_populates .
Mis preguntas son,
¿Debería tener que cambiar el nombre de mis clases, como Choice , Question en lugar de tener un Model de sufijo?
? Si mapeé correctamente, ¿qué causa este error?
He configurado el nombre, la choice y la question de mis tablas de PostgreSQL

* pitón == 3.10
*ubuntu==20.04
*fastapi==0.73.0
*AlquimiaSQL==1.4.31
*posgresql==14.2

¡Gracias por adelantado!

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda