使用rest-framework和django-allauth的设置标志来删除用户名作为登录和注册所必需的:
#settings.py
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
但是我仍然在管理员的注册表单和用户列表中看到用户名字段(空用户没有用户名)。
我该如何删除它?
使用rest-framework和django-allauth的设置标志来删除用户名作为登录和注册所必需的:
#settings.py
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
但是我仍然在管理员的注册表单和用户列表中看到用户名字段(空用户没有用户名)。
我该如何删除它?
基本上,这涉及创建一个自定义用户模型,并告知Django和Django管理部分应该使用它,而不是标准模型。
您的类将如下所示。
class User(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
实现的详细信息可以在此处找到。
您需要定义自己的自定义用户模型以将其从Django admin中删除。如果您可以使用Django的带有用户名的用户模型,但想要将其从序列化程序(DRF)中删除,则可以定义自己的自定义登录和注册序列化程序,并在那里删除用户名。
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
https://django-allauth.readthedocs.io/en/latest/advanced.html#custom-user-models
from django.utils.translation import gettext_lazy as _
class LectureUser(AbstractUser):
username = None
identifier = models.IntegerField(primary_key=True)
email = models.EmailField(_('email address'))
USERNAME_FIELD = 'identifier' # Set to the unique identifier we define.
objects = CustomUserManager()
_
?PyCharm显示未解决的引用'_'
。 - MrObjectOriented