Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A Django app to facilitate email links

Project Description


django-hashphrase is a django module that facilitates the process that
users click on a link in an email and django handles the click.
Hashlink makes it easy to generate such a link, authenticate it or not,
calls a custom function or not, etc.

Quick start

1. Add "hashphrase" to your INSTALLED_APPS setting like this::


2. Include the hashphrase URLconf in your project like this::

url(r'^hl/', include('hashphrase.urls')),

3. Also put this at the end of your like this::

from hashphrase import hashphraseviews_autodiscover
hashphraseviews_autodiscover() #autodiscover in apps

3. To generate a link::

from hashphrase import generate_hashphrase

from django.contrib.auth.models import User
any_object = User.objects.get(id=1)

import datetime
action = 'my_click_handler'
hash_phrase = generate_hashphrase(request.user, any_object,, action=action)

# Then generate for example ""+hash_phrase+"/"
# that lick will call the "registered" function

4. To register a function, create a file called and put the function in it.::

from hashphrase import hashphrase_register
@hashphrase_register('my_click_handler') #name must match action when creating the link
def test_success(request, has_error, error_code, hash_link, content_obj):
use hashphrase_register decorator to register this function to be called when
users click on the email link.
be sure to check has_error. If not verified, has_error = True
See HashLink class for error code definition
if has_error or not hash_link or not content_obj:
from hashphrase import HashLink
ret = "Invalid email link."
if error_code == HashLink.ERR_EXPIRED:
ret = "Link expired."
elif error_code == HashLink.ERR_INVALID_USER:
ret = "Needs to login."
elif error_code == HashLink.ERR_INVALID_LINK:
ret = "Invalid link."
return HttpResponse(ret)
return HttpResponse("Successful.")

Release History

This version
History Node


History Node


History Node


History Node


Download Files

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

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(12.3 kB) Copy SHA256 Hash SHA256
Source Nov 21, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting