django-custom-user 0.5

Custom user model for Django >= 1.5 with the same behaviour as Django's default User but with email instead of username.
<object data="https://img.shields.io/pypi/v/django-custom-user.svg" type="image/svg+xml">https://img.shields.io/pypi/v/django-custom-user.svg</object> <object data="https://img.shields.io/travis/jcugat/django-custom-user/master.svg" type="image/svg+xml">https://img.shields.io/travis/jcugat/django-custom-user/master.svg</object> <object data="https://img.shields.io/coveralls/jcugat/django-custom-user/master.svg" type="image/svg+xml">https://img.shields.io/coveralls/jcugat/django-custom-user/master.svg</object> <object data="https://img.shields.io/pypi/dm/django-custom-user.svg" type="image/svg+xml">https://img.shields.io/pypi/dm/django-custom-user.svg</object>

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

  1. Install django-custom-user with your favorite Python package manager:
pip install django-custom-user
  1. Add 'custom_user' to your INSTALLED_APPS setting:
INSTALLED_APPS = (
    # other apps
    'custom_user',
)
  1. Set your AUTH_USER_MODEL setting to use EmailUser:
AUTH_USER_MODEL = 'custom_user.EmailUser'
  1. 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()

Remember to change the AUTH_USER_MODEL setting to your new class:

AUTH_USER_MODEL = 'my_app.MyCustomEmailUser'

If you use the AdminSite, add the following code to your my_app/admin.py file:

from django.contrib import admin
from custom_user.admin import EmailUserAdmin
from .models import MyCustomEmailUser


class MyCustomEmailUserAdmin(EmailUserAdmin):
    """
    You can customize the interface of your model here.
    """
    pass

# Register your models here.
admin.site.register(MyCustomEmailUser, MyCustomEmailUserAdmin)

Changelog

Version 0.5 (2014-09-20)

  • Django 1.7 compatible (thanks to j0hnsmith).
  • Custom application verbose_name in AdminSite with AppConfig.

Version 0.4 (2014-03-06)

  • The create_user() and create_superuser() manager methods now accept is_active and is_staff as parameters (thanks to Edil Kratskih).

Version 0.3 (2014-01-17)

  • AdminSite now works when subclassing AbstractEmailUser (thanks to Ivan Virabyan).
  • Updated model changes from Django 1.6.1.

Version 0.2 (2013-11-24)

  • Django 1.6 compatible (thanks to Simon Luijk).

Version 0.1 (2013-04-09)

  • Initial release.
BSD License

Author

Josep Cugat

Pip

django-custom-user==0.5

Classifiers

  • Topic :: Internet :: WWW/HTTP :: Dynamic Content
  • Topic :: Internet :: WWW/HTTP
  • Programming Language :: Python :: 3.3
  • Programming Language :: Python :: 3
  • Programming Language :: Python :: 2.7
  • Programming Language :: Python :: 2.6
  • Programming Language :: Python :: 2
  • Programming Language :: Python
  • Operating System :: OS Independent
  • License :: OSI Approved :: BSD License
  • Intended Audience :: Developers
  • Framework :: Django
  • Environment :: Web Environment
  • Development Status :: 4 - Beta
File Type Python Version Uploaded On Downloads
django_custom_user-0.5-py2.py3-none-any.whl Wheel py2.py3 Sept. 20, 2014 558
django-custom-user-0.5.tar.gz Source Sept. 20, 2014 588
Version Release Date
0.5 Sept. 20, 2014
0.4 March 6, 2014
0.3 Jan. 17, 2014
0.2 Nov. 24, 2013
0.1 April 9, 2013
Date Package Version Action
Nov. 4, 2014, 1:04 p.m. django-custom-user 0.4 Release Created
Nov. 4, 2014, 1:04 p.m. django-custom-user 0.5 Release Created
Nov. 4, 2014, 1:04 p.m. django-custom-user 0.2 Release Created
Nov. 4, 2014, 1:04 p.m. django-custom-user 0.3 Release Created
Nov. 4, 2014, 1:04 p.m. django-custom-user 0.1 Release Created
Nov. 4, 2014, 1:04 p.m. django-custom-user Package Created