django UserAdmin and user creation

hello everyone
here i wrote a user model and model manager for it
when i try to create a super user some kind of error named get_by_natural_key shows up
help me fix it please

my model.py

from django.db import models
from django.contrib.auth.models import AbstractBaseUser
from .managers import UserManager

class User(AbstractBaseUser):
    email = models.EmailField(max_length=2500 , unique=True)
    phone_number = models.CharField(max_length=11 , unique=True)
    full_name = models.CharField(max_length=200)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    objects = UserManager
    USERNAME_FIELD = 'phone_number'
    REQUIRED_FIELDS = ['full_name' , 'email']

    def __str__(self):
        return self.email
    
    def has_perm(self , perm , obj = None):
        return True
    
    def has_module_perms(self , app_label):
        return True
    @property
    def is_staff(self):
        return self.is_admin

my manager.py

from django.contrib.auth.models import BaseUserManager

class UserManager(BaseUserManager):
    
    
    def create_user(self , email ,phone_number , full_name , password ):
        if not email:
            raise ValueError('user must have email')
        if not phone_number:
            raise ValueError('user must have phone number')
        if not full_name:
            raise ValueError('user must have full name')
        
        user = self.model(email=self.normalize_email(email) , phone_number = phone_number , full_name = full_name)
        user.set_password(password)
        user.save(using = self._db)
        return user
    
    def create_superuser(self , email , phone_number , full_name , password):
        user = self.create_user(email , phone_number , full_name , password)
        user.is_admin = True
        user.save(using = self._db)
        return user
   

and of course i set the AUTH_USER_MODEL=‘account.User’

error that shows up:

Traceback (most recent call last):
  File "E:\python practice2\A\manage.py", line 22, in <module>
    main()
  File "E:\python practice2\A\manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "E:\coding\Lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "E:\coding\Lib\site-packages\django\core\management\__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "E:\coding\Lib\site-packages\django\core\management\base.py", line 413, in run_from_argv
    self.execute(*args, **cmd_options)
  File "E:\coding\Lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 90, in execute
    return super().execute(*args, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\coding\Lib\site-packages\django\core\management\base.py", line 459, in execute
    output = self.handle(*args, **options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\coding\Lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 132, in handle
    error_msg = self._validate_username(
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\coding\Lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 305, in _validate_username
    self.UserModel._default_manager.db_manager(database).get_by_natural_key(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Manager' object has no attribute 'get_by_natural_key'

In your model you have this:

objects = UserManager

But I believe it should be:

objects = UserManager()

See the full example in the docs: Customizing authentication in Django | Django documentation | Django

that worked
thanks :pray: