Skip to main content

A django user authentication and login application.

Reason this release was yanked:

updated

Project description

Authentication

A django user authentication and login application.

01. To install and use the package, use:

    pip install django-user-login

Instructions

02. Add "authentication" to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = [
        ...
        'authentication',
    ]

03. Include the authentication URLconf in your project urls.py like this:

path('authentication/', include('authentication.urls')),

04. Run python manage.py migrate to create the User, Person and Address models (you'll need the Admin app enabled).

05. The App requires Django Sessions

06. In your settings.py file include the following:

    SITE_TITLE = 'your-site-title'
    LOGIN_URL = '/authentication/'
    EMAIL_HOST = 'email-host'
    EMAIL_PORT = email-port
    EMAIL_HOST_USER = 'emaill-address'
    EMAIL_HOST_PASSWORD = 'email-password
    EMAIL_USE_TLS = True
    AUTHENTICATION_DEBUG=False

07. For login and logout functionality, use -

  • To Login, use anyone one of these

              - <a href="{% url 'authentication:homepage' %}">Login</a>
              - <a href='/authentication/'>Login</a>
    
  • To Logout, use anyone one of these

              - <a href="{% url 'authentication:logout' %}">Logout</a>
              - <a href="/authentication/logout/">Logout</a>
    
  • To visit My Account page and edit profile credentials, use any one of these -

              - <a href="{% url 'authentication:account' %}">Account</a>
              - <a href="/authentication/account/">Account</a>
    

08. When AUTHENTICATION_DEBUG = TRUE

    - Live EMAILS will not be sent and verification codes, if any, will be displayed in the console.
    - No password validation will happen.

09. This authentication app creates two models - Person and Address

    class Person(models.Model):
    MALE = 'M'
    FEMALE = 'F'
    NON_BINARY = 'N'
    GENDER_CHOICES = [
            (MALE, "male"),
            (FEMALE, 'female'),
            (NON_BINARY, 'non_binary')
    ]

    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="person")
    first_name = models.CharField(max_length=64, blank=True, null=True)
    last_name = models.CharField(max_length=64, blank=True, null=True)
    email = models.EmailField(unique=True, blank=True, null=True)
    username = models.CharField(max_length=64, blank=True, null=True)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True, null=True)
    phone = models.CharField(max_length=20, unique=True, blank=True, null=True)
    birth_date = models.DateField(null=True, blank=True)

    class Meta:
            ordering = ['first_name', 'last_name']

    def __str__(self):
            return f"{self.first_name} {self.last_name}"


    class Address(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE, related_name="address")
    primary = models.BooleanField(default=False)
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
    email = models.EmailField(max_length=500)
    mobile = models.CharField(max_length=20)
    homephone = models.CharField(max_length=20, null=True, blank=True)
    address1 = models.CharField(max_length=2000)
    address2 = models.CharField(max_length=2000, null=True, blank=True)
    landmark = models.CharField(max_length=500)
    pincode = models.CharField(max_length=10)
    city = models.CharField(max_length=50)
    state = models.CharField(max_length=50)
    country = models.CharField(max_length=50)

    def __str__(self):
            return f"{self.first_name} {self.last_name}"
    
    class Meta:
            ordering = ['first_name', 'last_name']
            verbose_name_plural = "Address Entries"

10. When a user closes their account, the app will not delete the User account but set is_active to False in User Model

11. Check Demo Website

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-user-login-0.3.2.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

django_user_login-0.3.2-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file django-user-login-0.3.2.tar.gz.

File metadata

  • Download URL: django-user-login-0.3.2.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for django-user-login-0.3.2.tar.gz
Algorithm Hash digest
SHA256 f0bcafdacf38fe2e36b74aaff7f993fcdcf53bb375a2450e403501119f16d7a5
MD5 d70c7a02515cdedc79177c002a1d20c6
BLAKE2b-256 1de76e90b71e6ecdff212739b15840851fb8acb9d2dcec1f40dde8ba8a59d5f2

See more details on using hashes here.

File details

Details for the file django_user_login-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_user_login-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1ab43e0a21165d285a99ff9cc4befd221d50b413ce121cd2906d2d035a08dcc9
MD5 6606165b149bc2ac5908a733163ff102
BLAKE2b-256 d19cd77ee6e37a9a0598005f17d0f3213f852f2f0fbf3f26111c12b1e5f0a510

See more details on using hashes here.

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