在Django allauth中,可以避免在自定义用户模型中创建用户名字段,可以使用电子邮件作为唯一的用户标识。下面是一个解决方法的代码示例:
settings.py
文件中,将ACCOUNT_USER_MODEL_USERNAME_FIELD
设置为None
,以指示不使用用户名字段:# settings.py
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
AbstractUser
并添加必要的字段,例如电子邮件字段:from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
email = models.EmailField(unique=True)
settings.py
中,将AUTH_USER_MODEL
设置为你的自定义用户模型:# settings.py
AUTH_USER_MODEL = 'your_app_name.CustomUser'
$ python manage.py makemigrations
$ python manage.py migrate
这样,你的自定义用户模型将使用电子邮件字段作为唯一的用户标识,而不是用户名字段。