Фильтрация по количеству отношений в SQLAlchemy - PullRequest
10 голосов
/ 19 января 2009

Я использую SQLAlchemy Python ORM в проекте Pylons. У меня есть класс "Project", который имеет отношение один ко многим с другим классом "Entry". Я хочу сделать запрос в SQLAlchemy, который дает мне все проекты, с которыми связана одна или несколько записей. На данный момент я делаю:

[project for project in Session.query(Project) if len(project.entries)>0]

, что, как я знаю, не идеально, но я не могу понять, как сделать фильтр, который делает то, что мне нужно (например, Session.query (Project) .filter (Project.entries.exists ())).

Есть идеи?

1 Ответ

15 голосов
/ 20 января 2009

Session.query(Project).filter(Project.entries.any()) должно работать.

Отредактированный кредит комментария Джеймса Брэди, обязательно дайте ему немного любви.

...