Podría implementar su búsqueda con un CASE
expresión
en SQL:
from sqlalchemy import case
_event_type_lookup = dict(received=0, open=1, done=2)
class Trades(Base):
...
@hybrid_property
def event_type_to_integer(self):
return _event_type_lookup[self.event_type]
@event_type_to_integer.expression
def event_type_to_integer(cls):
return case(_event_type_lookup, value=cls.event_type)
Esto utiliza el value
abreviatura de case()
construir para producir una expresión que compare la expresión de columna dada con las claves pasadas en el diccionario, dando como resultado los valores asignados.