Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

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.

Project details


Release history Release notifications

This version
History Node

1.3a0

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page