def post(self, post_id, post): # makes sure the user isn't able to like their own post, logs them out with an error for trying to cheat if self.user.key == post.author: self.logout() return self.redirect('/login?error=fakelike') if not Like.get_by_postid(post_id): l = Like(parent=like_key(), like_count=1, post_key=post.key, liked_by_key=[self.user.key]) l.put() return self.redirect('/blog/%s' % int(post_id)) else: like = Like.get_by_postid(post_id) if self.user.key in like.liked_by_key: like.like_count -= 1 like.liked_by_key.remove(self.user.key) like.put() return self.redirect('/blog/%s' % int(post_id)) else: like.like_count += 1 like.liked_by_key.append(self.user.key) like.put() return self.redirect('/blog/%s' % int(post_id))
def get(self, post_id, post): like_value = "Like" like_name = "like" likes = Like.get_by_postid(post_id) if likes: if self.user.key in likes.liked_by_key: like_value = "Unlike" like_name = "unlike" if self.user: self.render("post.html", post=post, author=post.author_name(), current_user=self.user.name, like_value=like_value, like_name=like_name, likes=likes) else: self.render("post.html", post=post, author=post.author_name(), likes=likes)