def post(self, post_id): key = db.Key.from_path('Post', int(post_id), parent=blog_key()) post = db.get(key) if not post: self.error(404) return """ While commenting, a comment datastore object is created and stored, with respect to each user and post. """ c = "" if (self.user): # On clicking like, post-like value increases. if (self.request.get('like') and self.request.get('like') == "update"): likes = db.GqlQuery("select * from Like where post_id= " + post_id + " and user_id= " + str(self.user.key().id())) if self.user.key().id() == post.user_id: self.redirect("/blog/" + post_id + "?error= You cannot like your own post") return elif likes.count() == 0: l = Like(parent=blog_key(), user_id=self.user.key().id(), post_id=int(post_id)) l.put() # On commenting, it creates new comment tuple if (self.request.get('comment')): c = Comment(parent=blog_key(), user_id=self.user.key().id(), post_id=int(post_id), comment=self.request.get('comment')) c.put() else: self.redirect("/blog/" + post_id + "?error= Need to Login Please.") return comments = db.GqlQuery("select * from Comment where post_id = " + post_id + "order by created desc") likes = db.GqlQuery("select * from Like where post_id=" + post_id) self.render("permalink.html", post=post, comments=comments, no_of_likes=likes.count(), new=c)
def post(self): """increment post liked number by one""" pid = self.request.get("pid") if self.with_no_user() or self.user_match_post_author(pid): self.redirect("/") return pid = long(pid) post = Post.by_id(pid) post.liked += 1 post.put() pid = long(pid) like = Like(uid=self.user.key().id(), pid=pid) like.put() self.redirect("/post/%s" % pid)