Custom user model for Django >= 1.5 with the same behaviour as Django's default User but with email instead of username.
Project description
Custom user model for Django >= 1.5 with the same behaviour as Django’s default User but without a username field. Uses email as the USERNAME_FIELD for authentication.
Quick start
Install django-custom-user with your favorite Python package manager:
pip install django-custom-user
Add 'custom_user' to your INSTALLED_APPS setting:
INSTALLED_APPS = (
# other apps
'custom_user',
)
Set your AUTH_USER_MODEL setting to use EmailUser:
AUTH_USER_MODEL = 'custom_user.EmailUser'
Create the database tables.
python manage.py syncdb
Usage
Instead of referring to EmailUser directly, you should reference the user model using get_user_model() as explained in the Django documentation. For example:
from django.contrib.auth import get_user_model
user = get_user_model().get(email="user@example.com")
When you define a foreign key or many-to-many relations to the EmailUser model, you should specify the custom model using the AUTH_USER_MODEL setting. For example:
from django.conf import settings
from django.db import models
class Article(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL)
Extending EmailUser model
You can easily extend EmailUser by inheriting from AbstractEmailUser. For example:
from custom_user.models import AbstractEmailUser
class MyCustomEmailUser(AbstractEmailUser):
"""
Example of an EmailUser with a new field date_of_birth
"""
date_of_birth = models.DateField()
Changelog
Version 0.2 (2013-11-24)
Django 1.6 compatible.
Version 0.1 (2013-04-09)
Initial release.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.