faster remove

This commit is contained in:
j 2016-02-11 23:25:46 +05:30
commit a71dab1c91
3 changed files with 15 additions and 13 deletions

View file

@ -104,6 +104,15 @@ class Item(db.Model):
cls.query.filter(cls.id.in_(ids)).delete(synchronize_session=False)
state.db.session.expire_all()
@classmethod
def remove_without_user(cls):
q = user_items.select()
owned_ids = {i['item_id'] for i in state.db.session.execute(q)}
ids = {i.id for i in cls.query.options(load_only('id'))}
remove = ids - owned_ids
if remove:
cls.remove_many(remove)
def add_user(self, user):
if not user in self.users:
self.users.append(user)