Bạn có thể triển khai tra cứu của mình bằng CASE biểu thức
trong 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)
Điều này sử dụng giá trị
viết tắt của trường hợp ()
cấu trúc để tạo ra một biểu thức so sánh biểu thức cột đã cho với các khóa được truyền trong từ điển, kết quả là các giá trị được ánh xạ.