Как можно пропустить промежуточные таблицы в цепочках внешних ключей с помощью SQLAlchemy? - PullRequest
0 голосов
/ 05 октября 2019

Скажем, у меня есть три таблицы: people, companies и countries. people имеет столбец employer, который указывает на строку в companies, которая имеет строку home_country, которая указывает на строку countries. С помощью SQLAlchemy я могу представить это так:

class Person(Base):
    __tablename__ = "people"
    employer_id = Column(String, ForeignKey("companies.id"))
    employer = relation("Company", foreign_keys=[employer_id])

... а затем очень похожий класс Company и, наконец, класс Country. Если person теперь является экземпляром Person, я могу получить страну, в которой они работают, как person.employer.country. Но что, если мне наплевать на компании? Что если я просто хочу получить страну напрямую? То, что я хочу:

  1. Иметь возможность получить информацию о стране, в которой работает человек, через person.country, которая должна быть экземпляром класса Country.
  2. Не обязательновообще определить класс Company.

Возможно ли это?

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