Skip to main content

Keep HTTP referer information on query parameter and display referer information

Project description

django-referer

django-referer is a Django app for displaying different referer details based on a customizable query parameter and keeping this query parameter while user navigates in the site. It provides sales, partners and affiliates custom links to send out in order to get private traffic. It gives sales, partners and affiliates their opportunity to convert every contact detail on the website to their own. It thus encourages sales, partners and affiliates to promote the website and the business. In addition, with the help of analytics scripts, traffic data can be easily distinguished and analyzed.

Demo

. URL with referer parameter

e.g. https://zhujia.com.au/?refer=14
django-referer Demo - Link with referer

(The chosen query parameter is kept by django-referer’s middleware while user navigates between links)

django-referer Demo 2 - Link with referer

. URL without referer parameter (falls back to the default referer)

e.g. https://zhujia.com.au
django-referer Demo - Link without referer django-referer Demo 2 - Link without referer

Installation

Use the package manager pip to install django-referer.

pip install django-referer

Usage

Step 1. Add referer middleware (in settings.py file)

MIDDLEWARE = [
    'referer.middleware.referer.RefererMiddleware',  # here
    'django.middleware.security.SecurityMiddleware',
    '...'
]

Step 2. Add referer context processor (in settings.py file)

TEMPLATES = [
    {
        'OPTIONS': {
            'context_processors': [
                '...',
                'django.contrib.messages.context_processors.messages',
                'referer.context_processors.referer',  # here
            ],
        },
    },
]

Step 3. Customize referer settings (in settings.py file) (optional)

The defaults are:

REFERER_LINK_PARAMETER = 'referer'
REFERER_DEFAULT_ID = 1
# -> ?referer=1

REFERER_MODEL_FROM = 'django.contrib.auth.models'
REFERER_MODEL_IMPORT = 'User'
# -> from REFERER_MODEL_FROM import REFERER_MODEL_IMPORT

REFERER_IGNORED_LINKS = []

Step 4. Display referer information (in .html file)

<a href="mailto:{{ referer.email }}">Email</a>
<p>{{ referer.first_name }} {{ referer.last_name }}</p>

Contributing

Issues and pull requests are welcomed.

License

MIT © Yifan Ai

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-referer-0.1.0.tar.gz (265.5 kB view hashes)

Uploaded source

Built Distribution

django_referer-0.1.0-py3-none-any.whl (5.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page