python - Django密码重置页面加载问题
问题描述
我已经在我的网络博客中实现了忘记密码功能。
我使用 Django 和我的 gmail 帐户作为邮箱。我通过启用不太安全的应用程序/2 步身份验证尝试了我的 gmail 帐户中的两种设置。
博客流程:
- 用户注册(通过提供电子邮件 ID)
- 登录(如果忘记密码,请在电子邮件中获取密码重置链接)
- 主页
现在的问题是,在为密码重置提供电子邮件 ID 后,我没有获得成功页面。相同的网页不断加载,既没有收到电子邮件也没有错误。
以下是代码:
设置.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'
网址.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 %}
解决方案
推荐阅读
- c# - 我应该一次触发多少个 IO 绑定异步任务?
- node.js - 如何在 Linux Docker 容器上安装 NPM
- javascript - 如何获取 JSON 键的路径:值对
- laravel - 我可以从会话中获取当前用户 ID 到 api 控制器吗
- git - Gradle 执行带引号的命令
- tensorflow - 如何从 keras mobilenet 保存创建和保存子模型?
- javascript - 使用函数返回道具不是返回道具
- amazon-web-services - 如何从我的本地计算机和其他区域的 EC2 实例访问我的 AWS MSK 托管 kafka 队列
- javascript - jest.fn() 被多次调用
- php - 我想捕获这条路线的ID