Chris CouchFront End Web Development Techdegree Student 17,059 Points
Bummer: Try again!
Update the create_editor method in the UserManager so that, when an editor is created, they're automatically added to a group named "Editors".
The "Editors" group may not exist and might not have the can_give_discount permission, so make sure to handle those scenarios.
trying to find a solution to this problem not sure where to go from here...
from django.contrib.auth.models import ( PermissionsMixin, BaseUserManager, AbstractBaseUser, Permission, Group ) 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 def create_editor(self, email, dob, password): user = self.create_user( email, dob, accepted_tos=True, password=password ) return user class User(AbstractBaseUser, PermissionsMixin): email = models.EmailField(unique=True) dob = models.DateField() 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"]