【问题标题】:Django password reset confirmDjango密码重置确认
【发布时间】:2020-06-15 18:47:24
【问题描述】:

我是 Django 新手,真的很困惑。

我正在使用内置的 rest auth 开发身份验证 API。

我想通过 API 视图重置密码,但我发送的邮件链接将我重定向到“密码重置确认”HTML 模板,但我需要将此链接重定向到 API 视图。

我希望重定向到这个页面:

但我的电子邮件链接重定向到此 HTML 模板页面:

此电子邮件由password_reset_email.html发送

someone asked for password reset for email {{ email }}. Follow the link below:
{{protocol}}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}

这是重定向此电子邮件链接的网址:

path('password/reset/confirm/(?P<uidb64>[0-9A-Za-z]+)/(?P<token>.+)/$', auth_views.PasswordResetConfirmView, name='password_reset_confirm'),

【问题讨论】:

    标签: django rest api django-rest-framework passwords


    【解决方案1】:

    这是你的网址:

    path('password/reset/confirm/(?P<uidb64>[0-9A-Za-z]+)/(?P<token>.+)/$', auth_views.PasswordResetConfirmView, name='password_reset_confirm'),
    

    而且你没有指定你的模板文件。这就是为什么它采用 Django 默认模板并显示 Django 管理员密码重置页面。

    更新您的网址。并指定您的自定义模板名称。

    urls.py

    path('password-reset-confirm/<uidb64>/<token>',auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm'),
    

    这是我的自定义模板。并从 Django rest 框架文档更新您的模板。

    password_reset_confirm.html

    {% extends "users/users_base.html" %}
    {% load crispy_forms_tags %}
    {% load static %}
    
    {% block content %}
    <!-- Nested Row within Card Body -->
    
        <form class="user" method="POST">
            {% csrf_token %}
            <div class="form-group mb-6">
                 {{ form | crispy }}
            </div>
            <div class="form-group text-center ">
                <button type="submit" class="btn btn-primary btn-user text-center">
                    Change Password
                </button>
            </div>
        </form>
    
    {% endblock %}
    

    【讨论】:

      猜你喜欢
      • 2021-04-21
      • 2019-12-01
      • 2017-03-13
      • 2020-01-15
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      相关资源
      最近更新 更多