Configuration¶
Add base_accounts
to your INSTALLED_APPS
:
INSTALLED_APPS = (
...
'base_accounts',
...
)
Add also to your urls.py
:
url(r'^accounts/', include('accounts.auth_urls'))
User subclass¶
Class BaseUser
, which subclasses
django.contrib.auth.models.AbstractUser
, is itself abstract. Therefore, you
must subclass BaseUser
from another class of yours. This allows you to add
extra funtionality, include mixins, override methods, or any other stuff you
need. For example, we usually create an accounts
app inside our project,
and from a models.py
:
from django.db import models
from base_accounts.models import BaseUser
class User(BaseUser):
pass
Do not forget to include your new app into your INSTALLED_APPS
:
INSTALLED_APPS = (
...
'base_accounts',
'accounts',
...
)
Now tell your project that this will be your auth model, and include the backend for authentication:
AUTH_USER_MODEL = 'accounts.User'
AUTHENTICATION_BACKENDS = (
...
'accounts.auth_backend.EmailBackend',
'django.contrib.auth.backends.ModelBackend',
)
Finally, you must sync your database with your new model. If you use south:
python manage.py schemamigration accounts --initial
python manage.py migrate accounts
Optional settings¶
BASE_ACCOUNTS_SIGNUP_REDIRECT_URL¶
- default:
settings.LOGIN_REDIRECT_URL
(if not set, ‘/accounts/profile/’ in Django by default)
BASE_ACCOUNTS_LOGIN_REDIRECT_URL¶
- default:
settings.LOGIN_REDIRECT_URL
(if not set, ‘/accounts/profile/’ in Django by default)
BASE_ACCOUNTS_POST_LOGIN_REDIRECT_URL¶
- default:
settings.LOGIN_REDIRECT_URL
(if not set, ‘/accounts/profile/’ in Django by default)
BASE_ACCOUNTS_LOGOUT_REDIRECT_URL¶
- default:
settings.LOGOUT_URL
(if not set, ‘/accounts/logout/’ in Django by default)
BASE_ACCOUNTS_UPDATE_EMAIL_REDIRECT_URL¶
- default: Reverse of
settings_update_email
view
BASE_ACCOUNTS_UPDATE_EMAIL_ERROR_REDIRECT_URL¶
- default: Reverse of
settings_update_email
view
BASE_ACCOUNTS_UPDATE_PASSWORD_REDIRECT_URL¶
- default: Reverse of
settings_update_password
view
BASE_ACCOUNTS_UPDATE_PASSWORD_ERROR_REDIRECT_URL¶
- default: Reverse of
settings_update_password
view
BASE_ACCOUNTS_CONFIRM_EMAIL_REDIRECT_URL¶
- default: ‘/’