Spaces:
Running
Running
| from django.db import models | |
| from django.utils import timezone | |
| from django.contrib.auth.models import AbstractBaseUser,PermissionsMixin,BaseUserManager | |
| # Create your models here. | |
| class CustomAccountManager(BaseUserManager): | |
| def create_user(self,email,username,password,**kwargs): | |
| if not email: | |
| raise ValueError("You must provide an email") | |
| if not username: | |
| raise ValueError("You must provide an name") | |
| if not password: | |
| raise ValueError("You must provide an password") | |
| email = self.normalize_email(email) | |
| user = self.model(email=email,username=username,**kwargs) | |
| user.set_password(password) | |
| user.save() | |
| return user | |
| def create_superuser(self,email,username,password,**kwargs): | |
| kwargs.setdefault("is_staff",True) | |
| kwargs.setdefault("is_superuser",True) | |
| kwargs.setdefault("is_active",True) | |
| if kwargs['is_staff'] is not True: | |
| raise ValueError("SuperUser must have is_staff=True.") | |
| if kwargs['is_superuser'] is not True: | |
| raise ValueError("SuperUser must have is_superuser=True.") | |
| return self.create_user(email=email,username=username,password=password,**kwargs) | |
| class User(AbstractBaseUser,PermissionsMixin): | |
| email = models.EmailField(verbose_name="Email Address",primary_key=True,max_length=255,unique=True) | |
| username = models.CharField("Name",max_length=150,unique=False) | |
| joining_date = models.DateTimeField("Joining Date",default=timezone.now) | |
| is_staff = models.BooleanField(default=False) | |
| is_superuser = models.BooleanField(default=False) | |
| is_active = models.BooleanField(default=True) | |
| USERNAME_FIELD = "email" | |
| REQUIRED_FIELDS = ["username"] | |
| objects = CustomAccountManager() | |
| def __str__(self): | |
| return self.username | |