Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

377
Visualizações
SQLAlchemy: uso de propiedades híbridas en una consulta

Estoy tratando de usar una propiedad híbrida SQLAlchemy como esta

 class Metric(Base): __tablename__ = 'metric' id = Column(Integer, primary_key=True) value = Column(Float, nullable=False) @hybrid_property def dominance(self): return 1 - abs(0.5 - float(self.value))

Ahora, uso esto en mi modelo así

 class MetricModel(BaseModel): def get_dominance(self): self.query(Metric).filter(Metric.dominance > 0.5).order_by(Metric.dominance.desc()).limit(2).all()

Esta es una aplicación de matraz y se llama así

 model = MetricModel(db) with db.session(): print(model.get_dominant_traits())

Esto me da un error TypeError: float() argument must be a string or a number, not 'InstrumentedAttribute' Desde el error, parece que no hay un conjunto de resultados, de ahí la falla. Seguí los documentos aquí http://docs.sqlalchemy.org/en/latest/orm/extensions/hybrid.html ¿Qué debo hacer de manera diferente?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Necesitas crear expresión .

 from sqlalchemy import func class Metric(Base): __tablename__ = 'metric' id = Column(Integer, primary_key=True) value = Column(Float, nullable=False) @hybrid_property def dominance(self): return 1 - abs(0.5 - self.value) @dominance.expression def dominance(cls): return 1 - func.abs(0.5 - cls.value)
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda