Просмотр сброса пароля, электронная почта не отправляется

#python #django #email

Вопрос:

после сброса пароля я мгновенно перенаправляюсь на представление password_reset/done и не получаю электронное письмо. Я отправляю электронное письмо вручную, чтобы проверить, работает ли оно и все ли в порядке, поэтому проблема в » пути(‘password_reset/’, auth_views.PasswordResetView.as_view(success_url=reverse_lazy(‘профиль:password_reset_done’)), имя=’password_reset’), «, Это проблема с именем приложения или что-то в этом роде, я не могу найти какое-либо рабочее решение для этого

 from django.urls import path, reverse_lazy
from .views import ProfileDetail, FollowUser, RegisterUser
from django.contrib.auth import views as auth_views

app_name = 'profile'

urlpatterns = [
    path('<slug:slug>/profile/', ProfileDetail.as_view(), name='profile-details'),
    path('follow/', FollowUser.as_view(), name='follow'),
    path('register/', RegisterUser.as_view(), name='register'),
    path('login/', auth_views.LoginView.as_view(template_name='registration/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),

    path('password_reset/', auth_views.PasswordResetView.as_view(success_url=reverse_lazy('profile:password_reset_done')), name='password_reset'),
    path('password_reset/done/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'),
    path('reset/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    path('reset/done/', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'),

    path('password_change/', auth_views.PasswordChangeView.as_view(), name='password_change'),
    path('password_change/done/', auth_views.PasswordChangeDoneView.as_view(), name='password_change_done'),
]
 

основные URL-адреса:

 from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('post.urls', namespace='post')),
    path('profile/', include('user_profile.urls', namespace='profile')),
]

if settings.DEBUG:
    urlpatterns  = static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns  = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 

настройки конфигурации:

 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = '587'
EMAIL_USE_TLS = True
EMAIL_HOST_USER = ***
EMAIL_HOST_PASSWORD = ***
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
 

Комментарии:

1. Можете ли вы отправить электронное письмо одному и тому же пользователю из контекста django? docs.djangoproject.com/en/3.2/topics/email

2. Да, я отправил тестовое электронное письмо от shell и получил его нормально

3. Видите ли вы электронную почту в своей консоли, если вы установили EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' ?

4. Нет, я ничего не вижу, его мгновенное перенаправление на URL-адрес «password_reset_done» обычно занимает 3-5 секунд перед перенаправлением, и на этот раз его мгновенное

5. Я пока не могу комментировать, вы пытались установить разрешить менее безопасные приложения в настройках Gmail и проверить, не содержится ли это в спамах