Django проблема с загрузкой страницы сброса пароля - PullRequest
1 голос
/ 06 февраля 2020

Я реализовал функцию Забыли пароль в своем веб-блоге.

Я использовал Django и мою учетную запись gmail в качестве почтового ящика. Я попробовал обе настройки в своей учетной записи gmail, включив менее безопасные приложения / двухэтапную аутентификацию.

Поток блогов:

  • Регистрация пользователя (путем предоставления идентификатора электронной почты)
  • Вход в систему (если забыли пароль, получите ссылку для сброса пароля по электронной почте)
  • Домашняя страница

Теперь проблема в том, что после ввода идентификатора электронной почты для сброса пароля я не получаю страницу успеха. Одна и та же веб-страница продолжает загружаться, не получая ни электронной почты, ни ошибки.

Ниже приведены коды:

settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
LOGIN_REDIRECT_URL = '/home'
LOGIN_URL = '/login'

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.auth import views as auth_views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include("users.urls")),
    path('login/',auth_views.LoginView.as_view(template_name = 'users/login.html'), name = 'login'),
    path('logout/',auth_views.LogoutView.as_view(template_name = 'users/logout.html'), name = 'logout'),
    path('password-reset/',auth_views.PasswordResetView.as_view(template_name = 'users/password_reset.html'), name = 'password_reset'),
    path('password-reset/done/',auth_views.PasswordResetDoneView.as_view(template_name = 'users/password_reset_done.html'), name = 'password_reset_done'),
    path('password-reset-confirm/<uidb64>/<token>/',auth_views.PasswordResetConfirmView.as_view(template_name = 'users/password_reset_confirm.html'), name = 'password_reset_confirm'),


] 
urlpatterns += [

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

password_reset. html

{% extends "users/base.html" %}


    {% block content %}
    <div class="content-section">
        <form method="POST">
            {% csrf_token %}
            <fieldset class="form-group">
                <legend class="border-bottom mb-4">Reset Password</legend>
                {{ form }}
            </fieldset>
            <div class="form-group">
                <button class="btn btn-outline-info" type="submit">Request Password Reset</button>
            </div>
        </form>
    </div>

    {% endblock content %}

password_reset_done. html

   {% extends "users/base.html" %}
{% block content %}
    <div class="alert alert-info">
        An email has been sent with instructions to reset your password
    </div>
    {% endblock content %}

password_reset_complete. html

{% extends "users/base.html" %}
{% block content %}
    <div class="alert alert-info">
        Your password has been set.
    </div>
    <a href="{% url 'login' %}">Sign In Here</a>
{% endblock content %}

password_reset_confirm. html

{% extends "users/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
    <div class="content-section">
        <form method="POST">
            {% csrf_token %}
            <fieldset class="form-group">
                <legend class="border-bottom mb-4">Reset Password</legend>
                {{ form|crispy }}
            </fieldset>
            <div class="form-group">
                <button class="btn btn-outline-info" type="submit">Reset Password</button>
            </div>
        </form>
    </div>
    {% endblock content %}
...