Skip to main content

A user for djangorestframework that uses an email as the username.

Project description

https://travis-ci.org/simlist/django-rest-framework-emailuser.svg?branch=master https://coveralls.io/repos/github/simlist/django-rest-framework-emailuser/badge.svg?branch=master

Overview

A user for djangorestframework that uses an email as the username.

Features

  • Use email as username for loging in

  • One name field instead of first name and last name

  • Endpoints for creating an account, viewing, and updating accounts

  • Django admin to work with EmailUser model.

Requirements

  • Python 3.5+

  • Django 2.2+

  • Djangorestframework 3.10+

Installation and Configuration

Install using pip:

$ pip install djangorestframework_emailuser

Add 'emailuser' to INSTALLED_APPS:

# mysite/settings.py
INSTALLED_APPS = [
    ...
    'emailuser',
]

Add the following line to settings.py to override django’s default User model with the ‘EmailUser’ model:

# mysite/settings.py
AUTH_USER_MODEL = 'emailuser.EmailUser'

Add urls to url conf:

# mysite/urls.py
from django.urls import path, include
urlpatterns = [
  ...
  path('accounts/', include('emailuser.urls')),
]

Using

To create a user programatically:

from django.contrib.auth import get_user_model

normal_user = get_user_model().objects.create_user(
    email='me@example.com',
    name='My Name',
    password='MyPassword'
)

superuser = get_user_model().objects.create_superuser(
    email='admin@example.com',
    name='Super Name',
    password='MySuperPassword'
)

Using Endpoints:

Assuming emailuser urls were set to /accounts/:

Creating user

POST {"email": email, "name": name, "password": password} to /accounts/users/register

Updating User

PUT {"email": email, "name": name, "password": password} to /accounts/users/<int:pk>/ or PATCH the attribute you want to change to /accounts/users/<int:pk>/

Attributes

The EmailUser model has the following attributes:

email

The email address used as the login username.

name

A single field for the name of the user.

password

The password is hashed as set by the django settings.

is_superuser

A boolean attribute that can only be set programatically.

is_staff

A boolean attribute that can be set by the admin site or programatically.

EmailUser also subclasses django.contrib.auth.models.PermissionsMixin.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page