backend/django
django hitcount: counting hit (views) in django
seul chan
2018. 2. 20. 21:35
It’s not that difficult to counting every detail page in your website.
But I found very easy and great library for that - [django-hitcount](https://github.com/thornomad/django-hitcount/blob/master/example_project/blog/models.py)
Installing
using pip
pip install django-hitcount
and add it to INSTALLED_APPS
# settings.py
INSTALLED_APPS = (
...
'hitcount'
)
Also you can use several settings - active days, ip limit, exclude user group and so on. check here for more information.
Usage
You should inherit hitcount for model, and detailview.
Model
Just inherit HitCountMixin
. And that’s all!
from hitcount.models import HitCount, HitCountMixin
@python_2_unicode_compatible
class Post(models.Model, HitCountMixin):
title = models.CharField(max_length=200)
content = models.TextField()
...
def __str__(self):
return "Post title: %s" % self.title
View
You just inherit HitCountDetailView
and add count_hit = True
.
from hitcount.views import HitCountDetailView
from community.models import Post
class PostDetailView(HitCountDetailView):
model = Post
count_hit = True
...
Template
{# the primary key for the hitcount object #}
{{ hitcount.pk }}
{# the total hits for the object #}
{{ hitcount.total_hits }}