AttributeError У объекта EmailAddressManager нет атрибута is_verified
При попытке зарегистрировать пользователя с помощью DRF, dj-rest-auth и django-allauth я получаю следующую ошибку:
AttributeError at /api/v1/dj-rest-auth/registration/ У объекта 'EmailAddressManager' нет атрибута 'is_verified'
Вот часть файла settings.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / "templates"],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
"django.template.context_processors.request",
],
},
},
]
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
SITE_ID = 1
и файл urls.py на уровне проекта:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('apps.pages.front.urls')),
path('api/v1/', include("apps.contacts.api.urls")),
path('api-auth/', include("rest_framework.urls")),
path("api/v1/dj-rest-auth/", include("dj_rest_auth.urls")),
path("api/v1/dj-rest-auth/registration/", include("dj_rest_auth.registration.urls")),
]
(я храню свои приложения в выделенной папке apps. и создал пользовательскую модель пользователя)
Оставляя поле электронной почты пустым, вы успешно регистрируете нового пользователя, но это не сработает, если я добавлю электронную почту.
Эта проблема возникает при несоответствии версий пакетов django, django-allauth или dj-rest-auth. В моем случае я использовал следующие версии:
django = “^4.2.4”
django-allauth = “^0.54.0”
dj-rest-auth = “^5.0.2”
Для решения проблемы я понизил версию dj-rest-auth до версии "^5.0.1". Я рекомендую обновить все три пакета до последних версий, и все должно работать как надо.