2013-03-08 2 views
0

Как сравнить список Python с коллекцией SQLAlchemy?Сравнение списка Python в сборнике SQLAlchemy

Я получаю следующее сообщение об ошибке

InvalidRequestError: Can't compare a collection to an object or collection; use contains() to test for membership 

от этой линии

gr = AGroup.query.filter_by(users=sorted(members)).first() 

Пользователи является список объектов Auser.

Я хочу проверить, существует ли какая-либо группа с теми же пользователями, что и список участников.

Однако, поскольку пользователи представляют собой сборку sqlalchemy, это не работает.

спасибо. :)

Базовая структура класса

AGroup 
- users 

AUser 
- name 
+0

как бы вы это сделали с SQL-запросом? – zzzeek

+0

Вы пробовали, что он говорит? «use contains() для проверки членства» –

+0

Да, но это не устраивает моих потребностей. Я не хочу, чтобы он просто содержал членов, а затем, возможно, некоторых других пользователей. Я хочу, чтобы он содержал ТОЛЬКО членов, которые содержит() не проверяет. Таким образом, это не сработало для меня. – GangstaGraham

ответ

-2

Я решил проблему с помощью следующего кода.

groups = AGroup.query.all() 
    for g in groups: 
     if sorted(list(g.users)) == members: 
      doSomething() 
+0

Хотя это работает, лучше использовать SQL-запрос, так как загрузка многих объектов в память может сделать ваш код очень медленным –

Смежные вопросы