Count visits using cache for Django models
Project description
Django Visit Count
Count visits using cache for Django models.
Installation
-
Set-up Django's cache framework.
-
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dc57575ba9dd7c753105658f09699fcc02ed743a02f02cc9dd581d628665e58
|
|
| MD5 |
62fb4ea68025426e8d42cc1d6018412b
|
|
| BLAKE2b-256 |
9cbf2802566d8446ec1c6687f46834a75089879831f002ab70b80acd977dbaaa
|
File details
Details for the file django_visit_count-1.2.1-py3-none-any.whl.
File metadata
- Download URL: django_visit_count-1.2.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ac1c624dc34148d9cf711d5933c7be726daa8e58a486149851fe53ac94c9b8b
|
|
| MD5 |
db88ddea7c8c880743e82c50069b4e1b
|
|
| BLAKE2b-256 |
b9d1aee157374b4704473b3c6bceaa8cf2d335d2020d7608d100788ffc5936bb
|