sqlalchemy - How get all rows not in many-to-many relationship -


i need users not refer group. in sql it's not exist. don't know how within sqlalchemy's orm.

models.py

group_table = table('assoc_groups_users', base.metadata,                 column('user_id', integer, foreignkey('users.id')),                 column('group_id', integer, foreignkey('groups.id'))                 )  class users(base):     __tablename__ = "users"     id = column(integer, primary_key=true)     name = column(string(50), unique=false)  class groups(base):     __tablename__ = "groups"     id = column(integer, primary_key=true)     title = column(string(127))      users = relationship("users",                            secondary=books_table,                            backref=backref("books", lazy='dynamic')) 

using relationships (small , simple code, bit more verbose sql exists , not required join on groups table):

query = session.query(users).filter(~users.groups.any()) 

otherwise, using outerjoin where, direct , generates sql resembling one-to-one query:

query = (session.query(users)         .outerjoin(group_table, group_table.c.user_id == users.id)         .filter(group_table.c.user_id == none)         ) 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -