Skip to content

Instantly share code, notes, and snippets.

@victor-shelepen
Created August 15, 2014 16:20
Show Gist options
  • Save victor-shelepen/4a14713aacc54f8a91dc to your computer and use it in GitHub Desktop.
Save victor-shelepen/4a14713aacc54f8a91dc to your computer and use it in GitHub Desktop.
query_1 = db\
.Query(UserModel, func.count(FriendModel.friend_id).label('friends'))\
.select_from(UserModel)\
.outerjoin(FriendModel, and_(UserModel.id==FriendModel.user_id))\
.group_by(FriendModel.user_id)
s_1 = query_1.subquery('s_1')
query_2 = db\
.session.query(s_1, FriendModel.status)\
.select_from(s_1)\
.join(FriendModel, FriendModel.user_id==s_1.c.id)
print query_2.all()
@victor-shelepen
Copy link
Author

I want to make working the way:

query_1 = db
.Query(UserModel, func.count(FriendModel.friend_id).label('friends'))
.select_from(UserModel)
.outerjoin(FriendModel, and_(UserModel.id==FriendModel.user_id))
.group_by(FriendModel.user_id)
s_1 = query_1.subquery('s_1')

query_2 = db
.Query(s_1, FriendModel.status)
.select_from(s_1)
.join(FriendModel, FriendModel.user_id==s_1.c.id)

print query_2.paginate(1, 2)

It invokes an error.
AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with FriendModel.status has an attribute '_autoflush'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment