Как отобразить связь между одной таблицей и третьей таблицей, проксированной второй таблицей? - PullRequest
1 голос
/ 05 декабря 2011

Давайте получим 3 таблицы A, B, C и отношения между ними.

A - много к одному с B

B - один ко многим с C

Какнаписать отношение в sqlalchemy, чтобы иметь доступ к C из A, например: AC [0] .some_column

1 Ответ

3 голосов
/ 06 декабря 2011

В вашем примере

A - это много к одному с B

B - это один ко многим с C

Итак, наконец,

A - это много кмногие C - это последнее отношение, если вы хотите получить доступ к C из A.

Вы должны создать отношение в каждой модели для прямого доступа.

Например,

A.x is relationship with B
B.y is relationship with C

, тогда вы можете получить доступ через Axy, который вернет вам список.

Чтобы получить доступ как Ax, вы можете использовать primaryjoin Вы можете дать запрос, который будет иметь прямой доступ к C из A.

Например

Class A:

    p = relationship(C,
             primaryjoin=A.x==B.y,
             secondaryjoin=B.y==C.z
             )

Это может быть для вас работой.

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