Свойство SQLAlchemy / Elixir для доступа к строке из отдельной таблицы без использования нескольких запросов выбора - PullRequest
0 голосов
/ 05 сентября 2018

У нас есть модель человека

from project.model import User

class Person(Entity, PersonHook):
    ...
    @property
    def user_name(self):
        u = User.get(self.user_id)
        return u.user_name if u else ""

Когда мы делаем большой запрос для Person и обращаемся к Person.user_name, он создает оператор выбора для каждого человека из таблицы User.

Можно ли загрузить два объекта Person и User одновременно?

Наш проект использует старый и устаревший декларативный слой Elixir для SQLAlchemy.

В БД у них есть отношения User.user_id и Person.person_id. Я пробовал несколько форм отношений sqlalchemys
user = relationship('User', primaryjoin='foreign(Person.user_id) == User.user_id')
user = relationship('User', foreign_keys=[user_id], primaryjoin = 'User.user_id == Person.user_id')
Но все, что я получаю, это <RelationshipProperty at 0x7f8fdd5ee5a0; no key>

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