my page doesn't allow me to login as non super user. only super user are logged in

my model.py file

from django.db import models
from django.contrib.auth.models import User, BaseUserManager, AbstractBaseUser, PermissionsMixin
from django.utils.translation import gettext_lazy as _
# custom user manager- rather than default user manger
class CustomUserManager(BaseUserManager):
    def create_user(self,id_no, password=None, **extra_fields):
        if not id_no:
            raise ValueError("id must be set")
        email = self.normalize_email(email)
        user = self.model(id_no = id_no, password = password,**extra_fields)
        user.set_password(password)
        user.save(using=self._db)
        return user
    def create_superuser(self,id_no, password=None, **extra_fields):
        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)

        if extra_fields.get('is_staff') is not True:
            raise ValueError("Superuser must have is_staff=True.")
        if extra_fields.get('is_superuser') is not True:
            raise ValueError("Superuser must have is_superuser=True.")

        return self.create_user(id_no, password, **extra_fields)
# custom user model
choices= {
    "M": "Male",
    "F": "Female",

}
class CustomUser(AbstractBaseUser,PermissionsMixin):
    email = models.EmailField(unique=True)
    id_no = models.IntegerField(unique=True,primary_key=True) 
    profile_picture = models.ImageField(upload_to='profile_pics/', blank=True)
    is_active = models.BooleanField(default=True)  
    is_staff = models.BooleanField(default=False)
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=20)
    departement = models.CharField(max_length=40)
    sex = models.CharField(max_length=4,choices=choices)
    objects = CustomUserManager()
 
    USERNAME_FIELD = 'id_no'
   
    class Meta:
        verbose_name = _('user')
        verbose_name_plural = _('users')
    def __str__(self): 
        return self.first_name

    def get_full_name(self):
        """
        Returns the first_name plus the last_name, with a space in between.
        """
        full_name = '%s %s' % (self.first_name, self.last_name)
        return full_name.strip()

    def get_short_name(self):
        "Returns the short name for the user."
        return self.first_name

    """def email_user(self, subject, message, from_email=None, **kwargs):
        
        #Sends an email to this User.
        
        send_mail(subject, message, from_email, [self.email], **kwargs)"""

i am using AbstractBaseUser class and LoginView

Just a friendly reminder: When posting code here, enclose the code between lines of three backtick - ` characters. This means you’ll have a line of ```, then your code, then another line of ```. This forces the forum software to keep your code properly formatted. (I’ve taken the liberty of modifying your original post for this, please remember to do this in the future.)

How are you creating your non-super-user accounts?

Have you verified in the database that those accounts are created correctly?

Have you verified manually that the passwords being stored are correct? (You can do this in the Django shell.)

You’ve specified:

Is that the number you are supplying in the username field in your login form? (In other words, you might be asking me to log in as “1234”, is that correct?)

thank you for your response. i made some changes and it worked