1. from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
    
  2. from django.db import models
    
  3. 
    
  4. 
    
  5. class CustomUserWithUniqueConstraintManager(BaseUserManager):
    
  6.     def create_superuser(self, username, password):
    
  7.         user = self.model(username=username)
    
  8.         user.set_password(password)
    
  9.         user.save(using=self._db)
    
  10.         return user
    
  11. 
    
  12. 
    
  13. class CustomUserWithUniqueConstraint(AbstractBaseUser):
    
  14.     username = models.CharField(max_length=150)
    
  15. 
    
  16.     objects = CustomUserWithUniqueConstraintManager()
    
  17.     USERNAME_FIELD = "username"
    
  18. 
    
  19.     class Meta:
    
  20.         constraints = [
    
  21.             models.UniqueConstraint(fields=["username"], name="unique_custom_username"),
    
  22.         ]