pip install django-registration2
Add registration
to INSTALLED_APPS
:
INSTALLED_APPS = (
'django.contrib.auth',
'registration',
)
Add registration.urls
to your project's urls.py:
urlpatterns = patterns('',
...
url(r'^', 'registration.urls')),
)
Run South migrations (if installed):
python manage.py migrate registration
Otherwise run syncdb
:
python manage.py syncdb
Registration is handled by a backend which is a class composed of various methods for performing each step in the registration process. In most cases the default behavior is suitable, but for convenience a few settings are available to customize a few common scenarios.
A boolean which determines whether users can register or not. Default is True
A boolean which defines whether or not users will be moderated before
completing their registration. Default is False
A tuple of name/email pairs (like ADMINS
or MANAGERS
) whom will be notified
of newly registered users. Defaults to MANAGERS
An integer of the number of days an account activation link is valid. Users
receive one in their email after they sign up to verify their email address
is valid. Default is 0
(no time limit)
A few signals are exposed to notify when various events occurs. All signals provide the following arguments:
user
- The new user instancerequest
- The request instance used during registrationbackend
- The registration backend used for registration
Sent when a user registers.
Sent when a user verifies their email address using the verification link they receive via email. This occurs only for registration that is moderated since moderators will not receive notice of new registrations unless they verify their email address.
Sent when a user verifies their account using the verification link they receive via email. This applies to non-moderated registrants.
Sent when a moderator has moderated a user's registration (pass or fail).
Multiple backends are supported which may be necessary to handle different registration methods for different kinds of users.
REGISTRATION_BACKENDS = {
'default': 'registration.backends.default.Backend',
'other': 'myapp.backends.MyBackend',
}