Django: RecursionError: превышена максимальная глубина рекурсии при вызове объекта Python
Я пытаюсь создать суперпользователя, используя python manage.py createsuperuser
. Я получил RecursionError: maximum recursion depth exceeded while calling a Python object
.
Models.py
import datetime
from django.db import models
import uuid
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager
class UserManager(BaseUserManager):
# Creating Super User
def create_superuser(self, first_name, last_name,
email, password, **kwargs):
kwargs.setdefault('is_admin', True)
kwargs.setdefault('is_staff', True)
kwargs.setdefault('is_active', True)
kwargs.setdefault('is_superuser', True)
if kwargs.get('is_staff') is not True:
raise ValueError(
'Superuser must be assigned to is_staff=True'
)
if kwargs.get('is_superuser') is not True:
raise ValueError(
'Superuser must be assigned to is_superuser=True'
)
return self.create_superuser(first_name, last_name,
email, password, **kwargs)
# Creating User
def create_user(self, first_name,
last_name, email, username,
password, **kwargs):
email = self.normalize_email(email)
# User Object
user = self.model(email=email, username=username,
password=password, first_name=first_name,
last_name=last_name, **kwargs)
# Saving User
user.save()
return user
Admin.py
class UserAdmin(UserAdmin):
model = User
list_display=["first_name", "last_name",
"username", "email", "created_time",
"last_login"]
list_filter = ['is_active', 'is_staff',]
admin.site.register(User, UserAdmin)
Ошибка
Traceback (most recent call last):
File "D:\Concept_and_Project\Web Development\BackEnd\Django
Framework\Template\template_layer\manage.py", line 22, in <module>
main()
File "D:\Concept_and_Project\Web Development\BackEnd\Django
Framework\Template\template_layer\manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "D:\Concept_and_Project\Web Development\BackEnd\Django Framework\Template\lib\site-
packages\django\core\management\__init__.py", line 446, in execute_from_command_line
utility.execute()
File "D:\Concept_and_Project\Web Development\BackEnd\Django Framework\Template\lib\site-
packages\django\core\management\__init__.py", line 440, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "D:\Concept_and_Project\Web Development\BackEnd\Django Framework\Template\lib\site-
packages\django\core\management\base.py", line 402, in run_from_argv
self.execute(*args, **cmd_options)
File "D:\Concept_and_Project\Web Development\BackEnd\Django Framework\Template\lib\site-
packages\django\contrib\auth\management\commands\createsuperuser.py", line 88, in execute
return super().execute(*args, **options)
File "D:\Concept_and_Project\Web Development\BackEnd\Django Framework\Template\lib\site-
packages\django\core\management\base.py", line 448, in execute
output = self.handle(*args, **options)
File "D:\Concept_and_Project\Web Development\BackEnd\Django Framework\Template\lib\site-
packages\django\contrib\auth\management\commands\createsuperuser.py", line 233, in handle
self.UserModel._default_manager.db_manager(database).create_superuser(
File "D:\Concept_and_Project\Web Development\BackEnd\Django
Framework\Template\template_layer\Model\models.py", line 27, in create_superuser
return self.create_superuser(first_name, last_name,
File "D:\Concept_and_Project\Web Development\BackEnd\Django
Framework\Template\template_layer\Model\models.py", line 27, in create_superuser
return self.create_superuser(first_name, last_name,
File "D:\Concept_and_Project\Web Development\BackEnd\Django
Framework\Template\template_layer\Model\models.py", line 27, in create_superuser
return self.create_superuser(first_name, last_name,
[Previous line repeated 988 more times]
File "D:\Concept_and_Project\Web Development\BackEnd\Django
Framework\Template\template_layer\Model\models.py", line 13, in create_superuser
kwargs.setdefault('is_admin', True)
RecursionError: maximum recursion depth exceeded while calling a Python object