У меня возникла необычная проблема, с которой я столкнулся при реализации django -rest-framework-passwordless .
После интеграции модуля в мое приложение Django, когда я сделать первый запрос API, который он обрабатывает, пользователь создается и все работает безупречно, но при попытке создать другую учетную запись происходит сбой.
IntegrityError at /passwordless/auth/email/
UNIQUE constraint failed: auth_user.username
Request Method: POST
Request URL: http://127.0.0.1:8000/passwordless/auth/email/
Django Version: 2.2.10
Python Executable: /home/terkea/django_react_template/src/venv/bin/python
Python Version: 3.6.9
Python Path: ['/home/terkea/django_react_template/src', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/terkea/django_react_template/src/venv/lib/python3.6/site-packages']
Server time: Tue, 14 Apr 2020 02:04:41 +0000
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'rest_framework',
'corsheaders',
'rest_auth',
'rest_framework.authtoken',
'drfpasswordless',
'rest_auth.registration',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'api']
Installed Middleware:
['corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Как говорится в django .allauth документах I ' Вы отключили имя пользователя и сделали электронное письмо обязательным, но по какой-то причине оно не хочет получать эти изменения.
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_AUTHENTICATION_METHOD = 'email'