SQLAlchemy hybrid_property с выражением - PullRequest
0 голосов
/ 23 января 2020

Я хочу запросить и отфильтровать по hybrid_property. Я понимаю, что мне нужно использовать expression, но у меня возникают проблемы с поиском способа выполнить sh, когда hybrid_property вызывает другую функцию Python без SQL эквивалента.

Рассмотрим следующую настройку:

def some_encoding_function(some_bytes):
  ### do some encoding here (for example, base64)
  return some_string

class User:
  __tablename__ = "Users"
  ID = Column(Integer, primary_key = True)
  Name = Column(String, nullable = False)
  _Identifier = Column(sqlalchemy.types.BINARY, nullable = False)

  @hybrid_property
  def Identifier(self):
    return some_encoding_function(self._Identifier)

  @Identifier.expression
  def Indentifier(cls):
    ### NEED HELP HERE!

Мой hybrid_property и кодировщик работают как нужно, но мои попытки запроса и фильтрации по Identifier не сработали. Я попытался определить выражение как

@Identifier.expression
def Indentifier(cls):
  return some_encoding_function(cls._Identifier)

, но это приводит только к ошибкам в функции кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...