Python Django Authentication Users and Authorization Custom User Manager

Chris Baldwin
PRO
Chris Baldwin
Full Stack JavaScript Techdegree Graduate 41,867 Points

Now add a create_superuser method. All superusers have accepted the terms of service, so set the accepted_tos attribute

I appreciate any help getting this to work.

accounts/models.py
from django.contrib.auth.models import BaseUserManager
class UserManager(BaseUserManager):
    def create_user(self, email, dob, accepted_tos=False, password=None):
        if not password:
            raise ValueError("lskjdflkjsdflj")
        if not email:
            raise ValueError("slkjdflkjsdflkj")
        if accepted_tos != True:
            raise ValueError("lksjfdlkjasdf")
        user = self.model(
            email=self.normalize_email(email),
            dob=dob,
            accepted_tos=accepted_tos)
        user.set_password(password)
        user.save()
        return user

    def create_superuser(self, email, dob, password, accepted_tos=True):
        user = self.create_user(
            email,
            dob,
            password,
            accepted_tos)
        user.is_staff = True
        user.is_superuser = True
        user.save()
        return user

1 Answer

Chris Baldwin
PRO
Chris Baldwin
Full Stack JavaScript Techdegree Graduate 41,867 Points
def create_superuser(self, email, dob, password):
        user = self.create_user(
            email,
            dob,
            password=password,
            accepted_tos=True)
        user.is_staff = True
        user.is_superuser = True
        user.save()
        return user