Git Product home page Git Product logo

django-email-user's Introduction

# emailuser is a Django Custom User Module

#Package Version: 1.x emailuser makes it easy to use email address as your identification token instead of a username. emailuser is a custom Django user model (extends AbstractBaseUser) so it takes a tiny amount of effort to use.

The only difference between emailuser and the vanilla Django User is email address is the USERNAME_FIELD (and username also exist, If you not give it in create_user it will generate a random 12 char unique string as username).

emailuser supports Django 2.* to 3.*

When to use emailuser ?

When you need email as username in django project.

Why I have created emailuser?

I have created this custom user package for my university final project where I need to create user using university email also all user must have a profile link using unique username.

I think this package can help me in other application development also it can help other people too. That is why I published it. If you love it you can donate.

Install and setup

  1. Install with pip:
  #Django 2.x, or 3.x

  pip install django-emailuser 
  1. Add emailuser to your INSTALLED_APPS setting:
  
  INSTALLED_APPS = [
      ...
      'emailuser',
  ]
  
  1. Specify the custom model as the default user model for your project using the AUTH_USER_MODEL setting in your setting:
  AUTH_USER_MODEL = "emailuser.User"
  1. Run migrations (Don't do any migrate before emailuser makemigrations).

if you have tables referencing Django User model, you will have to delete those table and migrations, then re-migrate. This will ensure everything is set up correctly from the beginning.

 python manage.py makemigrations emailuser
 python manage.py migrate
  1. Instead of referring to User directly, you should reference the user model using django.contrib.auth.get_user_model()

When you define a foreign key or many-to-many relations to the User model, you should specify the custom model using the AUTH_USER_MODEL setting.

from django.conf import settings
from django.db import models

class Profile(models.Model):
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
)

7: For Django Rest Framework

from django.contrib.auth import get_user_model
class  UserSerializer(serializers.ModelSerializer):
  class  Meta:
    model = get_user_model()
    fields = ('id', 'email', 'username', 'first_name', 'last_name')

8: Helper Functions

from django.contrib.auth import get_user_model

get_user_model().objects.get_full_name()  # Return Full Name

/*
For sending email you must configure smtp setting like below
  EMAIL_HOST = 'hostname'
EMAIL_PORT = port
EMAIL_HOST_USER = 'username'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_TLS = True

*/

get_user_model().objects.send_email(subject, message, from_email)   

this will send email to logged in user

by default it will not show sending error

for showing error extra False argument required like below

get_user_model().objects.send_email(subject, message, from_email, False)

9: Registraion

get_user_model().objects.create_user(email, password, first_name, last_name, username)
#username field is optional. If it's empty a rendom unique username will be created

10: Login

#Required argument
email and password

Note. [email protected] will be replaced to [email protected] automatically

License

Released under the MIT license. See LICENSE for details.

Questions, comments, or anything else?

Give a thanks by Donation

django-email-user's People

Contributors

himelrana-swe avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.