NoReverseMatch: Обратное соответствие для 'account_confirm_email' не найдено. [dj-rest-auth].

Я новичок в Django. Я пытаюсь реализовать реактивную аутентификацию вместе с социальной аутентификацией.

Я следую этому руководству https://jkaylight.medium.com/django-rest-framework-authentication-with-dj-rest-auth-4d5e606cde4d

Я пытался реализовать то же самое, но не получается.

Я получаю эту ошибку:

django.urls.exceptions.NoReverseMatch: Не найдено обратное соответствие для 'account_confirm_email'. 'account_confirm_email' не является допустимой функцией представления или именем шаблона.

Уровень моего проекта urls.py

from drf_spectacular.views import (
    SpectacularAPIView,
    SpectacularSwaggerView
)
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    # path('account/', include('allauth.urls')),
    path('admin/', admin.site.urls),
    path('api/user/', include('user.urls')),
    path('api/schema/', SpectacularAPIView.as_view(), name='api-schema'),
    path(
        'api/docs/',
        SpectacularSwaggerView.as_view(url_name='api-schema'),
        name='api-docs'
    ),
]

Мой уровень приложения urls.py

from django.urls import path, re_path
from dj_rest_auth.registration.views import RegisterView, VerifyEmailView, ConfirmEmailView
from dj_rest_auth.views import LoginView, LogoutView


from user import views

app_name = 'user'

urlpatterns = [
    path('account-confirm-email/<str:key>/', ConfirmEmailView.as_view()),
    path('register/', RegisterView.as_view()),
    path('login/', LoginView.as_view()),
    path('logout/', LogoutView.as_view()),

    path('verify-email/',
         VerifyEmailView.as_view(), name='rest_verify_email'),
    path('account-confirm-email/',
         VerifyEmailView.as_view(), name='account_email_verification_sent'),
    re_path(r'^account-confirm-email/(?P<key>[-:\w]+)/$',
            VerifyEmailView.as_view(), name='account_confirm_email'),
    path('listusers/', views.ListUsers.as_view(), name='list-users'),
]

Когда я пытаюсь зарегистрировать пользователя. Это вызывает эту ошибку.

Я использую пакет dj-rest-auth для реализации аутентификации.

Для части регистрации вы должны использовать allauth, который имеет некоторые встроенные интеграции с dj-rest-auth

Кроме того, вам придется добавить некоторые вещи в ваш settings.py:

INSTALLED_APPS = [
    "dj_rest_auth.registration",
    "allauth",
    "allauth.account"
]
AUTHENTICATION_BACKENDS = [
    "allauth.account.auth_backends.AuthenticationBackend",
    "django.contrib.auth.backends.ModelBackend",
]

добавьте эти URL в urls.py:

urlpatterns = [
    path("signup/", include("dj_rest_auth.registration.urls"))
    path("verify-email/", VerifyEmailView.as_view(), name="rest_verify_email"),
    path(
        "account-confirm-email/",
        VerifyEmailView.as_view(),
        name="account_confirm_email_sent",
    ),
    path(
        "account-confirm-email/<key>/",
        VerifyEmailView.as_view(),
        name="account_confirm_email",
    ),
]

Запрос не получен <str:key>. Пожалуйста, проверьте, где вы выполняете запрос. Это может быть из представления или шаблона.

Вернуться на верх