Skip to content
This repository was archived by the owner on May 23, 2020. It is now read-only.

Commit 170c5e4

Browse files
committed
Updating views to Tracking Hit Counter of post
1 parent f94fa42 commit 170c5e4

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

update-1.1/blog/views.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
from . import models
44
from django.http import HttpResponse
55

6+
import datetime
7+
from django.core.exceptions import ObjectDoesNotExist
8+
69
class BlogIndex(generic.ListView):
710
queryset = models.Entry.objects.published()
811
template_name = "home.html"
@@ -27,7 +30,19 @@ def get_client_ip(self):
2730
else:
2831
ip = self.request.META.get("REMOTE_ADDR", "")
2932
return ip
30-
33+
34+
def tracking_hit_post(self):
35+
entry = self.model.objects.get(pk=self.object.id)
36+
try:
37+
models.Entry_Views.objects.get(entry=entry, ip=self.get_client_ip(), session=self.request.session.session_key)
38+
except ObjectDoesNotExist:
39+
view = models.Entry_Views(entry=entry,
40+
ip=self.request.META['REMOTE_ADDR'],
41+
created=datetime.datetime.now(),
42+
session=self.request.session.session_key)
43+
view.save()
44+
return models.Entry_Views.objects.filter(entry=entry).count()
45+
3146
def get_context_data(self, **kwargs):
3247
context_data = super(BlogDetail, self).get_context_data(**kwargs)
3348
related_entries = models.Entry.objects.filter(
@@ -37,6 +52,7 @@ def get_context_data(self, **kwargs):
3752
alltags = models.Tag.objects.all()
3853

3954
context_data['get_client_ip'] = self.get_client_ip
55+
context_data['tracking_hit_post'] = self.tracking_hit_post()
4056
context_data['alltags'] = alltags
4157
context_data['count_tags'] = related_entries.count
4258
context_data['related_entries'] = related_entries[:5] #limitation for post
@@ -45,4 +61,4 @@ def get_context_data(self, **kwargs):
4561

4662
class PageDetail(generic.DetailView):
4763
model = models.Page
48-
template_name = "pages.html"
64+
template_name = "pages.html"

0 commit comments

Comments
 (0)