C

Я успешно модифицировал первую страницу сброса пароля. (Где пользователь вставляет свой адрес электронной почты)

<

html шаблон

{% load static %}

<div class="box" align="center">
  <h1>Write your new password</h1>
  <div class="small-line"></div>
  <form method="POST">
    {% csrf_token %}
    {{ context.as_p }}
    <button type="submit" class="sendbut">Reset Password</button>
  </form>
</div>

forms.py

class SetPasswordForm(forms.Form):

    def __init__(self, *args, **kwargs):
        super(SetPasswordForm, self).__init__(*args, **kwargs)
    # …
    new_password1 = forms.CharField(
        label=("New password"),
        widget=forms.PasswordInput(attrs={'autocomplete': 'new-password'}),
        strip=False,
        help_text=password_validation.password_validators_help_text_html(),
    )
    new_password2 = forms.CharField(
        label=("New password confirmation"),
        strip=False,
        widget=forms.PasswordInput(attrs={'autocomplete': 'new-password'}),
    )
<
@sensitive_post_parameters()
@never_cache
def PasswordResetConfirmView(request, uidb64=None, token=None,
                           template_name='users/password_reset_confirm.html',
                           token_generator=default_token_generator,
                           set_password_form=SetPasswordForm,
                           post_reset_redirect=None,
                           current_app=None, extra_context=None):
    """
    View that checks the hash in a password reset link and presents a
    form for entering a new password.
    """
    UserModel = get_user_model()
    assert uidb64 is not None and token is not None  # checked by URLconf
    if post_reset_redirect is None:
        post_reset_redirect = reverse('password_reset_complete')
    else:
        post_reset_redirect = resolve_url(post_reset_redirect)
    try:
        # urlsafe_base64_decode() decodes to bytestring on Python 3
        uid = force_str(urlsafe_base64_decode(uidb64))
        user = UserModel._default_manager.get(pk=uid)
    except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist):
        user = None

    if user is not None and token_generator.check_token(user, token):
        validlink = True
        title = ('Enter new password')
        if request.method == 'POST':
            form = set_password_form(user, request.POST)
            if form.is_valid():
                form.save()
                return HttpResponseRedirect(post_reset_redirect)
        else:
            form = set_password_form(user)
    else:
        validlink = False
        form = None
        title = ('Password reset unsuccessful')
    context = {
        'form': form,
        'title': title,
        'validlink': validlink,
    }
    if extra_context is not None:
        context.update(extra_context)

    if current_app is not None:
        request.current_app = current_app

    return TemplateResponse(request, template_name, context)

urls.py

urlpatterns = [
    path('password_reset/', views.password_reset, name='password_reset'),
    path('password_reset/done/', views.password_reset_done, name="password_reset_done"),
    path(r'reset/<uidb64>/<token>/', views.PasswordResetConfirmView, name='password_reset_confirm'),
]

пожалуйста, напишите {{form.as_p}} вместо {{context.as_p}}

{% load static %}

<div class="box" align="center">
  <h1>Write your new password</h1>
  <div class="small-line"></div>
  <form method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit" class="sendbut">Reset Password</button>
  </form>
</div>
Вернуться на верх