Python Django Authentication Users and Authorization Custom User Model

Jonathan Fernandes
PRO
Jonathan Fernandes
Pro Student 22,742 Points

Im stumped...

Can anyone look at my code and tell me what I am missing for challenge number three?

Challenge Task 3 of 3

Time to hook this up to the UserManager. Add a new objects attribute that points to an instance of the UserManager class. Add the USERNAME_FIELD attribute with a value of "email". Add the REQUIRED_FIELDS attribute. It's value should be a list with just the "dob" field in it.

accounts/models.py
from django.contrib.auth.models import (
    PermissionsMixin,
    BaseUserManager,
    AbstractBaseUser
)
from django.db import models
from django.utils import timezone


class UserManager(BaseUserManager):
    def create_user(self, email, dob, accepted_tos=None, password=None):
        if not accepted_tos:
            raise ValueError("Users must accept the terms of service")

        user = self.model(
            email=self.normalize_email(email),
            dob=dob,
            accepted_tos=True
        )
        user.set_password(password)
        user.save()
        return user

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


class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(unique=True)
    dob = models.DateTimeField()
    accepted_tos = models.BooleanField()
    is_staff = models.BooleanField(default=False)
    joined_at = models.DateTimeField(default=timezone.now)

    objects = UserManager()

    USERNAME_FIELD = "email"
    REQUIRED_FIELDS = ["dob"]
Conor Donahoe
Conor Donahoe
7,141 Points

I'm having this exact problem, does anyone know what the issue is?

maxwell ruzvidzo
maxwell ruzvidzo
6,820 Points

refresh the challenge and your code will pass