Je zou je zoekopdracht kunnen implementeren met een CASE
uitdrukking
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)
Dit gebruikt de value
afkorting van de case()
construct om een uitdrukking te produceren die de gegeven kolomuitdrukking vergelijkt met de sleutels die in het woordenboek zijn doorgegeven, wat de toegewezen waarden als resultaat oplevert.