Skip to main content

(Beta) Simple and flexible way to swap default Django User

Project description

Django-Swap-User (Beta)

About

If you are tired from copying one custom user model from one project to another ones - use this package. This will do all for you.

Installation

pip install django-swap-user

Basic usage

  1. Choose one of models and settings from table:
Application name Username field Description INSTALLED_APPS AUTH_USER_MODEL
to_email email User with email username "swap_user", "swap_user.to_email", "to_email.EmailUser"
to_named_email email User with email username, first_name and last_name extra fields "swap_user", "swap_user.to_named_email", "to_named_email.NamedEmailUser"
to_phone phone User with phone username "swap_user", "swap_user.to_phone", "to_phone.PhoneUser"
  1. Add corresponding app to INSTALLED_APPS:
INSTALLED_APPS = [
    ...
    "swap_user",
    "swap_user.to_named_email",
    ...
]
  1. Change AUTH_USER_MODEL to corresponding:
AUTH_USER_MODEL = "to_named_email.NamedEmailUser"

Architecture

Application swap_user split into 3 apps:

  • to_email - provides user with email username field
  • to_named_email - provides user with email username field and with first_name, last_name extra fields
  • to_phone - provides user with phone username field

Why?

Because if we leave them in one app, they all will create migrations and tables - such approach leads us to redundant tables. They will be treated as 3 custom models within the same app, which causes perplexing and cognitive burden.

With such approach (when there is a common app which contains internal apps) - the user choose and connect only the specific user model which suits best for concrete business-logic.

I have found such approach at Django REST Framework authtoken application and decide to use it - reference is here.

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

django-swap-user-0.4.1.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

django_swap_user-0.4.1-py3-none-any.whl (25.5 kB view hashes)

Uploaded Python 3

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