Skip to main content

Django Visit Count

Count visits using cache for Django models.

Installation

  1. Set-up Django's cache framework.

  2. Install the Python package.

    pip install django_visit_count
    

Usage

Use VisitCountMixin. It adds a visit_count field to your model.

from django_visit_count.mixins import VisitCountMixin

class MyBlogPost(VisitCountMixin, models.Model):
    ...

Create and run migrations on your model.

$ python manage.py makemigrations my_blog_app
$ python manage.py migrate my_blog_app

Count visits in your view like this:

def view_blog_post(request, post_id):
    post = get_object_or_404(MyBlogPost, pk=post_id)
    post.count_visit()
    ...

Advanced Usage

If you need more control, you can use is_new_visit function.

class MyBlogPost(models.Model):
    total_visits = models.PositiveIntegerField(default=0)
    ...
from django_visit_count.utils import is_new_visit

def view_blog_post(request, post_id):
    post = get_object_or_404(MyBlogPost, pk=post_id)

    if is_new_visit(request, post):
        post.total_visits = F("total_visits") + 1
        post.save(update_fields=["total_visits"])

    ...

You can pass an optional keyword argument session_duration (integer, number of seconds) to count_visit or is_new_visit.

Settings

Default settings:

VISIT_COUNT_DEFAULT_SESSION_DURATION = 5 * 60  # seconds

Development

  • Install development dependencies in your virtualenv with pip install -e '.[dev]'
  • Install pre-commit hooks using pre-commit install.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-visit-count-1.1.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_visit_count-1.1.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file django-visit-count-1.1.0.tar.gz.

File metadata

  • Download URL: django-visit-count-1.1.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for django-visit-count-1.1.0.tar.gz
Algorithm Hash digest
SHA256 64fb6ce7b3564fbd8bb0e0f79e9dda8875c7f7f3a2f1132f0108117dba91c4b9
MD5 953a4ba7f02d0e3aa7b00da1f6c7b176
BLAKE2b-256 64dec379d671a7f09e50099812e7379aaf5bfdbbb320186358be805271861c0e

See more details on using hashes here.

File details

Details for the file django_visit_count-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_visit_count-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0368a2c4bce62752dd031daff888bb4cee41d7a50565fa1c0dbe7dd167196e9
MD5 d0541cde4184450741746b705729d19d
BLAKE2b-256 dd0fe64016869dc3c1d6c25807f6ebc697becb602b0adbd999b2165d1fb26601

See more details on using hashes here.

Release history Release notifications | RSS feed

1.2.1

2 files

1.2.0

2 files

1.1.1

2 files

This release

1.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page