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.