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

An extensible user-registration application for Django with basic support for email user referrals

Project Description

This is a fork of django-registration(redux) that provides basic support for email referrals.

Installation

pip install django-registration-redux-referrals

or simply download the zip, extract it and copy the ‘registration’ directory into PYTHONPATH

Configuration

Configuration instructions remains similar to django-registration-redux. Here is the full documentation: http://django-registration-redux.readthedocs.org

After installation and configuration, all you need is to write the view to send referral emails.

Example:

# Import the ReferCodes and Refer models.
# The ReferCodes model holds refer codes generated by users.
# The Refer model holds referred users and the referees. Both are instances of django.contrib.auth.models.User

from registration.models import ReferCodes, Refer

# The ReferForm is a simple form with only an email field. You can implement your own if you like.

from registration.forms import ReferForm

# gen_code is a utility for generating the 20-character refer code

from registration.utils import gen_code

from django.core.mail import send_mail
from django.conf import settings
from django.contrib.sites.shortcuts import get_current_site
from django.core.urlresolvers import reverse


def refer(request):
    form = ReferForm()
    if request.POST:
        code = gen_code()
        obj, new = ReferCodes.objects.get_or_create(code=code, user=request.user)
        if new:
            # Generation of the refer URL
            # registration_register is the name of the registration url
            # Please note the structure of the URL
            url = 'http://' + get_current_site(request) + reverse('registration_register') + code + '/'
            # The refer email message
            message = "Hello, \n Please register for the writing service here {0}".format(url)
            # Sending the refer email.
            send_mail('Subject here', message, settings.EMAIL_HOST_USER,
                      [request.POST['email']], fail_silently=False)

        ...

Referred users who register will now be saved to the Refers table and you will be able to query them and their referees.

Release History

Release History

This version
History Node

1.3a0

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