Sie könnten Ihre Suche mit einem CASE Ausdruck
in 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)
Dabei wird der Code case()
Konstrukt, um einen Ausdruck zu erzeugen, der den angegebenen Spaltenausdruck mit den im Wörterbuch übergebenen Schlüsseln vergleicht und die zugeordneten Werte als Ergebnis liefert.