def toggle_like_by(self, user, flag): filters = dict(likeable=self, user=user) if flag: Like.find_or_create_by(**filters) else: Like.find_and_delete_by(**filters) return { 'paste_id': self.hash_id, 'user_like': user.reload().paste_likes_count, 'paste_likes': self.reload().likes_count, 'liked': flag }
def liked(self, paste): like = Like.objects(likeable=paste, user=self).first() return like is not None
def likes(self): return Like.objects(user=self)