django-activeusers
aims to keep track of currently active users on
Django-powered Web sites.
It is a reworked, simplified fork of django-tracking
located at
http://bitbucket.org/codekoala/django-tracking.
Tracks the following information about your visitors:
- Session key
- IP address
- User agent
- Whether or not they are a registered user and logged in
- Where they came from (http-referer)
- What page on your site they last visited
- How many pages on your site they have visited
Automatic clean-up of old visitor records
The ability to have a live feed of active users on your website
Template tags to:
- display how many active users there are on your site
- determine how many active users are on the same page within your site
- Django 1.2+
Download django-activeuesers
using one of the following methods:
pip install -e git+http://github.com/asavoy/django-activeusers.git#egg=django-activeusers
First of all, you must add this project to your list of INSTALLED_APPS
in
settings.py
:
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', ... 'django-activeusers', ... )
Run manage.py syncdb
. This creates a few tables in your database that are
necessary for operation.
Depending on how you wish to use this application, you have a few options:
Add django-activeusers.middleware.VisitorTrackingMiddleware
to your
MIDDLEWARE_CLASSES
in settings.py
. It must be underneath the
AuthenticationMiddleware
, so that request.user
exists.
If you want to have Django automatically clean past visitor information out
your database, put django-activeusers.middleware.VisitorCleanUpMiddleware
in your MIDDLEWARE_CLASSES
.
Make sure that django.core.context_processors.request
is somewhere in your
TEMPLATE_CONTEXT_PROCESSORS
tuple. This context processor makes the
request
object accessible to your templates. This application uses the
request
object to determine what page the user is looking at in a template
tag.
If you don't want particular areas of your site to be tracked, you may define a
list of prefixes in your settings.py
using the
ACTIVEUSERS_IGNORE_PREFIXES
. For example, if you didn't want visits to the
/family/
section of your website, set ACTIVEUSERS_IGNORE_PREFIXES
to
['/family/']
.
By default, active users include any visitors within the last 10 minutes. If
you would like to override that setting, just set ACTIVEUSERS_TIMEOUT
to
however many minutes you want in your settings.py
.
For automatic visitor clean-up, any records older than 24 hours are removed by
default. If you would like to override that setting, set
ACTIVEUSERS_CLEANUP_TIMEOUT
to however many hours you want in your
settings.py
.
Good luck! Please contact me with any questions or concerns you have with the project!