Metadata-Version: 2.1
Name: django-emailuser
Version: 1.1.2
Summary: emailuser, make email as username, But unique username also exists.
Home-page: https://github.com/Swe-HimelRana/django-email-user
Author: Himel Rana
Author-email: contact@himelrana-swe.com
License: MIT
Description: 
        # # `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](https://commerce.coinbase.com/checkout/c3eafb3c-65ba-40b5-b555-2037989de629).
        
        # Install and setup
        
         1. Install with `pip`:
          ```
            #Django 2.x, or 3.x
        
            pip install django-emailuser 
          ```
         2. Add `emailuser` to your `INSTALLED_APPS` setting:
         
          ```  
            
            INSTALLED_APPS = [
                ...
                'emailuser',
            ]
            
          ```
         3. 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"
          ```
         5. 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
          ```
        
         6. 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. FOO@example.com will be replaced to foo@example.com automatically
        
         
        ## License
        
        Released under the MIT license. See [LICENSE](https://github.com/Swe-HimelRana/django-email-user/blob/master/LICENSE) for details.
        
        ## [](https://github.com/Swe-HimelRana/django-email-user#questions-comments-or-anything-else)Questions, comments, or anything else?
        -   [Contribute](https://github.com/Swe-HimelRana/django-email-user/)
        -   [Open an issue](https://github.com/Swe-HimelRana/django-email-user/issues)
        -   [https://www.linkedin.com/in/swe-himelrana](https://www.linkedin.com/in/swe-himelrana)
        -   [contact@himelrana-swe.com](mailto:contact@himelrana-swe.com)
         
         Give a thanks by [Donation](https://commerce.coinbase.com/checkout/c3eafb3c-65ba-40b5-b555-2037989de629)
         
Keywords: django,django emailuser,django email user,django email username,django email as username
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Operating System :: OS Independent
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
Description-Content-Type: text/markdown
