install django-userena
1 2 3 |
pip install django-userena |
add AUTHENTICATION_BACKENDS in settings.py
1 2 3 4 5 6 7 8 |
## required by django-userena AUTHENTICATION_BACKENDS = ( 'userena.backends.UserenaAuthenticationBackend', 'guardian.backends.ObjectPermissionBackend', 'django.contrib.auth.backends.ModelBackend', ) |
add ANONYMOUS_USER_ID in settings.py
1 2 3 |
ANONYMOUS_USER_ID = -1 |
add userena, guardian and easy_thumbnails as INSTALLED_APPS in settings.py
1 2 3 4 5 6 7 8 9 10 |
INSTALLED_APPS = ( ... ## django-userena 'userena', 'guardian', ## required by userena 'easy_thumbnails', ## required by userena ... ) |
start accounts app
1 2 3 |
python manage.py startapp accounts |
add accounts as INSTALLED_APPS in settings.py
1 2 3 4 5 6 7 |
INSTALLED_APPS = ( ... 'accounts', ... ) |
edit accounts/manage.py
add following lines
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
... from django.contrib.auth.models import User from django.utils.translation import ugettext as _ from userena.models import UserenaBaseProfile class MyProfile(UserenaBaseProfile): user = models.OneToOneField(User, unique=True, verbose_name=_('user'), related_name='my_profile') favourite_snack = models.CharField(_('favourite snack'), max_length=5) |
add following lines in settings.py
1 2 3 4 5 6 7 8 |
... AUTH_PROFILE_MODULE = 'accounts.MyProfile' USERENA_SIGNIN_REDIRECT_URL = '/accounts/%(username)s/' LOGIN_URL = '/accounts/signin/' LOGOUT_URL = '/accounts/signout/' ... |
add userena urls in urls.py
1 2 3 4 5 6 |
... ## django-userena (r'^accounts/', include('userena.urls')), ... |
add email backend in settings.py
1 2 3 4 5 6 7 8 9 10 |
... ## email backend EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_HOST_USER = 'yourgmailaccount@gmail.com' EMAIL_HOST_PASSWORD = 'yourgmailpassword' ... |
add django.contrib.sites as INSTALLED_APPS in settings.py
1 2 3 4 5 6 7 |
INSTALLED_APPS = ( ... 'django.contrib.sites', ... ) |
add SITE_ID in settings.py
1 2 3 |
SITE_ID = 1 |
final operations
1 2 3 4 5 |
python manage.py syncdb python manage.py migrate python manage.py check_permissions |
run server
1 2 3 |
python manage.py runserver |