Skip to main content

Count visits using cache for Django models

Project description

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(request)
    ...

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

Project details


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.2.1.tar.gz (4.9 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.2.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file django_visit_count-1.2.1.tar.gz.

File metadata

  • Download URL: django_visit_count-1.2.1.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for django_visit_count-1.2.1.tar.gz
Algorithm Hash digest
SHA256 3dc57575ba9dd7c753105658f09699fcc02ed743a02f02cc9dd581d628665e58
MD5 62fb4ea68025426e8d42cc1d6018412b
BLAKE2b-256 9cbf2802566d8446ec1c6687f46834a75089879831f002ab70b80acd977dbaaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_visit_count-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ac1c624dc34148d9cf711d5933c7be726daa8e58a486149851fe53ac94c9b8b
MD5 db88ddea7c8c880743e82c50069b4e1b
BLAKE2b-256 b9d1aee157374b4704473b3c6bceaa8cf2d335d2020d7608d100788ffc5936bb

See more details on using hashes here.

Supported by

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