Удаление поля имени пользователя из Django Allauth

Я пытаюсь удалить поле имени пользователя после переопределения пакета Django Allauth. Я попробовал следующие предложения:

  1. Set ACCOUNT_USER_MODEL_USERNAME_FIELD = None and some more inside settings.py as following:
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_PASSWORD_MIN_LENGTH = 8
  1. Overriding User Model in venv\Lib\site-packages\django\contrib\auth\models.py
class User(AbstractUser):
    username = None
    email = models.EmailField(_('email address'), unique=True)
    USERNAME_FIELD = 'email'
    class Meta(AbstractUser.Meta):
        swappable = "AUTH_USER_MODEL"

оба не сработали, так как когда я запускаю py manage.py createsuperuser, у меня все еще выскакивает поле имени пользователя:

Username (leave blank to use 'admin'):

Как я могу безопасно удалить поле имени пользователя при переопределении Django Allauth?

Вы можете показать мне способ решения этой проблемы?

Спасибо!

В обоих django и django-allauth есть поле username и email. А то, что вы определяете CutomUser, означает, что вы пытаетесь вырезать модель пользователя по умолчанию, и вам не нужно снова объявлять переменные. Вот как будет выглядеть ваша новая модель models.py

from django.db import models
from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
    pass

Затем обновите ваш settings.py следующим образом:

ACCOUNT_SIGNUP_PASSWORD_ENTER_TWICE = False

ACCOUNT_USERNAME_REQUIRED = False    # This removes the username field
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
Вернуться на верх