CommandError: Это поле не может быть пустым. Это поле не может быть null. при создании суперпользователя
Я использую пользовательский пользователь для аутентификации Django, и я продолжаю получать ошибку в заголовке каждый раз, когда я пытаюсь создать суперпользователя. Еще более запутанным является то, что пользователь, похоже, зарегистрирован, потому что когда я пытаюсь использовать электронную почту в следующем создании, он говорит, что электронная почта была использована, но затем, когда я пытаюсь войти в систему, он говорит, что у пользователя нет профиля.
Модель пользователя имеет следующий код:
Когда я запускаю команду python manage.py createsuperuser, я получаю только поля для заполнения электронной почты, пароля1 и проверки пароля, но затем я получаю ошибку CommandError: Это поле не может быть пустым.; Это поле не может быть нулевым.; Это поле не может быть пустым.; Это поле не может быть пустым. Я даже не знаю, на какое поле ссылается ошибка. Есть какие-нибудь версии?
За исключением неизвестной части
- settings.DJANGO_ADMIN_FORCE_ALLAUTH
- from rhs_soccer.users.enums import UserRoles
из вашего исходного кода, не было никаких проблем, когда я тестировал его с тем же кодом.
models.py
class User(AbstractBaseUser, PermissionsMixin):
PLAYER = 'PR'
COACH = 'CO'
MANAGER = 'MG'
PARENT = 'PR'
ADMIN = 'AM'
ROLES = [
(PLAYER, 'PLAYER'),
(COACH, 'COACH'),
(MANAGER, 'MANAGER'),
(PARENT, 'PARENT'),
(ADMIN, 'ADMIN')
]
...
role = CharField(
_("Role"),
max_length=50,
choices=ROLES,
default=PLAYER,
)
...
forms.py
admin.autodiscover()
admin.site.login = secure_admin_login(admin.site.login) # type: ignore[method-assign]
Фактический вызов проблемной команды createsuperuser соответствует методу handle в этом файле.
Сообщение об ошибке, передаваемое вопрошающему, похоже, связано со значением REQUIRED_FIELDS модели пользователя, но REQUIRED_FIELDS вопрошающего пуст.
Поэтому я не понимаю, почему возникает ошибка вопрошающего.
Однако я хотел бы, чтобы вы попробовали отладить эту часть проблемы.
for field_name in self.UserModel.REQUIRED_FIELDS:
field = self.UserModel._meta.get_field(field_name)
user_data[field_name] = options[field_name]
if user_data[field_name] is not None:
user_data[field_name] = field.clean(user_data[field_name], None)
while user_data[field_name] is None:
message = self._get_input_message(field)
input_value = self.get_input_data(field, message)
user_data[field_name] = input_value
if field.many_to_many and input_value:
if not input_value.strip():
user_data[field_name] = None
self.stderr.write("Error: This field cannot be blank.")
continue
user_data[field_name] = [pk.strip() for pk in input_value.split(",")]
if not field.many_to_many:
fake_user_data[field_name] = user_data[field_name]
# Wrap any foreign keys in fake model instances.
if field.many_to_one:
fake_user_data[field_name] = field.remote_field.model(user_data[field_name])
Похоже, что в этой области есть проблема. Я бы хотел попробовать отладить больше, но в моем коде не возникло никаких ошибок. Если отладка этой части не решит проблему, пожалуйста, приложите содержимое settings.py к телу вопроса.