class PlanetPostingHandler(PlanetBaseHandler):
def get(self, slug):
- self.entry = self.planet.get_entry_by_slug(slug)
-
- if not self.entry:
+ entry = self.planet.get_entry_by_slug(slug)
+ if not entry:
raise tornado.web.HTTPError(404)
- self.render("planet/posting.html",
- author=self.entry.author, entry=self.entry)
-
- def on_finish(self):
- assert self.entry
-
# Get the referer and location for statistical purposes
referer = self.request.headers.get("Referer", None)
location = self.get_remote_location()
if location:
location = location.country
- self.entry.count_view(referer=referer, location=location)
+ # Log the request
+ with self.db.transaction():
+ entry.count_view(referer=referer, location=location)
+
+ self.render("planet/posting.html",
+ author=entry.author, entry=entry)
class PlanetSearchHandler(PlanetBaseHandler):