Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Django Authentication Users and Authorization Custom User Manager

BRIAN WEBER
BRIAN WEBER
21,570 Points

Extend BaseUserManager to make a new User class. Challenge not passing for some reason. [SOLVED]

For some reason my code is not passing the first part of this code challenge. Can someone please take a look and see what is wrong? Thanks!

accounts/models.py
from django.contrib.auth.models import BaseUserManager


class UserManager(BaseUserManager):
    def create_user(self, email, dob, accepted_tos=False, password):
        if not accepted_tos:
            raise ValueError("You must accept the Terms of Service to join.")

        user = self.model(
            email=self.normalize_email(email),
            dob=dob,
            accepted_tos=accepted_tos,
            password=password
        )

        user.set_password(password)
        user.save()
        return user
BRIAN WEBER
BRIAN WEBER
21,570 Points

I realized the following items that needed to be corrected:

1.) I did not set the accepted_tos value to True when creating the user. 2.) accepted_tos default value is None. 3.) password default value is None.

Here is the correct code:

class UserManager(BaseUserManager):
    def create_user(self, email, dob, accepted_tos=None, password=None):
        if not accepted_tos:
            raise ValueError("You must accept the Terms of Service to join.")

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

        user.set_password(password)
        user.save()
        return user