django 조회수 구현, hitcount 이용
2019-04-20
조회수 구현을 직접 하려니 잘 되지도 않을 뿐더러 괜히 다른 것도 할게 많은데 시간만 잡아 먹을 것 같아서 있는 기능을 이용하기로 했다. https://github.com/thornomad/django-hitcount
문서 원문에는 방법이 각각 3가지가 있는것 같지만 여기서는 필자가 이용한 방법 한가지만 소개한다. 우선 설치를 pip로 해준다.
pip install django-hitcount
settings.py INSTALLED_APPS에 아래와 같이 추가해준다.
# settings.py
INSTALLED_APPS = (
...
'hitcount'
)
이번 프로젝트에서는 DetailView
를 사용하고 있기 때문에 HitCountDetailView
를 이용하기로 한다.
아래와 같이 HitCountDetailView
import 해주고 기존에 사용하고 있었던 DetailView
에 count_hit = True
를 추가해준다.
generic.DetailView
를 상속받고 있었다면 지우고 HitCountDetailView
를 상속받게 괄호안에 넣어줘야한다.
from hitcount.views import HitCountDetailView
class PostCountHitDetailView(HitCountDetailView):
model = Post # your model goes here
count_hit = True # set to True if you want it to try and count the hit
DetailView
를 사용한 경우 hitcount
라는 변수를 사용할 수 있게 된다.
템플릿에 출력할때는 아래와 같이 상황에 맞게 사용하면 된다.
{# the primary key for the hitcount object #}
{{ hitcount.pk }}
{# the total hits for the object #}
{{ hitcount.total_hits }}
DetailView에서는 사용이 가능한데 게시물을 리스트로 출력하는 Template에선 사용이 안돼서 조금 아쉽긴 하다.