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
"""
On posting comment, new comment tuple is created and stored,
with relationship data of 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 " +
"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("/login?error=You need to login before " +
"performing edit, like or commenting.!!")
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, noOfLikes=likes.count(),
new=c)
评论列表
文章目录