нагуглить не получается.
Например есть таблица users
id: int
name: string
И есть таблица post
id: int
user_id: int
Как в модель Post добавить "виртуальное" property "user_name"?
Чтобы при обращении к нему формировался join на таблицу user?
Сейчас реализовано через
@hybrid_property
def user_name(self):
return self.user.name
@user_name.expression
def user_name(cls):
return User.name
Но оно так не работает.
Как в expression запихать join или типа того?
Вот так работает, но без джойна, он через подзапрос отправляет, слишком долго.
user_name = association_proxy('user', 'name')
association_proxy юзает настроенный релейшн. Ты можешь прям в релейшене указать lazy="joined" или типа того
ох, а lazy join выдирает в select вообще все колонки таблицы, к которой джойнится :(
https://t.me/sqlalchemy_help попробуй тут спросить
Обсуждают сегодня