Sqlalchemy выберите проблему со связанной таблицей - PullRequest
2 голосов
/ 26 октября 2011

У меня есть модель 'Пользователь', которая принадлежит модели 'Роль'.Одна «Роль» имеет много «Пользователь», а один «Пользователь» имеет одну «Роль».

Если я хочу выбрать всех пользователей, для которых «Роль» скрыта, скажем (это просто пример), я долженсделать что-то вроде этого:

User.query.join(Role).filter(roles_table.c.hidden==1).all()

Просто с помощью соединения в этом запросе я получаю следующее сообщение:

Оператор выбора SELECT role.hidden FROM role, user WHERE role.id = user.role_id 'не вернул ни одного предложения FROM из-за автокорреляции;укажите correlate () для управления корреляцией вручную.

Может кто-нибудь указать мне правильное направление работы этого запроса?

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Имея класс User имеет отношение к Role, самый простой способ будет:

User.query.filter(User.role.has(hidden=1))
1 голос
/ 26 октября 2011

Что если вы попробуете выполнить следующее:

User.query.join(Role).filter(Role.hidden==1).all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...