Удаление поля имени пользователя из Django Allauth
Я пытаюсь удалить поле имени пользователя после переопределения пакета Django Allauth. Я попробовал следующие предложения:
- 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
- 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