Usage#
There are two primary ways to use django-invitations described below.
Generic Invitation flow:
Privileged user invites prospective user by email (via either Django admin, form post, JSON post or programmatically)
User receives invitation email with confirmation link
User clicks link and is redirected to a preconfigured url (default is accounts/signup)
Allauth Invitation flow:
As above but..
User clicks link, their email is confirmed and they are redirected to signup
The signup URL has the email prefilled and upon signing up the user is logged into the site
Further details can be found in the following sections.
Allauth Integration#
As above but note that invitations must come after allauth in the INSTALLED_APPS
Set the allauth ACCOUNT_ADAPTER
setting
ACCOUNT_ADAPTER = 'invitations.models.InvitationsAdapter'
Sending Invites#
First import the model:
from invitations.utils import get_invitation_model
Make an instance of the model:
Invitation = get_invitation_model()
Then finally pass the recipient to the model and send.
# inviter argument is optional
invite = Invitation.create('email@example.com', inviter=request.user)
invite.send_invitation(request)
To send invites via django admin, just add an invite and save.
Bulk Invites#
Bulk invites are supported via JSON. Post a list of comma separated emails to the dedicated URL and Invitations will return a data object containing a list of valid and invalid invitations.
Signals#
The following signals are emitted:
invite_url_sent
invite_accepted
Management Commands#
Expired and accepted invites can be cleared with the clear_expired_invitations
management command:
python manage.py clear_expired_invitations