Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- In views.py, following from linked tutorial
- class PasswordResetConfirmView(FormView):
- template_name = "registration/password_reset_confirm.html"
- success_url = 'registration/password_reset_complete.html'
- form_class = SetPasswordForm
- def post(self, request, uidb64=None, token=None, *arg, **kwargs):
- """
- View that checks the hash in a password reset link and presents a
- form for entering a new password.
- """
- UserModel = get_user_model()
- form = self.form_class(request.POST)
- assert uidb64 is not None and token is not None # checked by URLconf
- try:
- uid = 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 default_token_generator.check_token(user,
- token):
- if form.is_valid():
- new_password= form.cleaned_data['new_password2']
- user.set_password(new_password)
- user.save()
- messages.success(request, 'Password has been reset.')
- return self.form_valid(form)
- else:
- messages.error(request, 'Password reset has not been
- unsuccessful.')
- return self.form_invalid(form)
- else:
- messages.error(request,'The reset password link is no longevalid.')
- return self.form_invalid(form)```
- In urls.py
- url(r'^account/password_reset/', ResetPasswordRequestView.as_view(),
- name="reset_password"),
- url(r'^account/password/reset/done/', ResetPasswordRequestView.as_view(),
- name="reset_password_done"),
- url(r'^reset/(?P<uidb64>[0-9A-Za-z]+)/(?P<token>.+)/$',
- PasswordResetConfirmView.as_view(),name='password_reset_confirm'),
- In password_reset_confirm.html in the Registration folder
- {% extends 'base.html' %}
- {% block title %}Enter new password{% endblock %}
- {% block content %}
- <h1>Set a new password!</h1>
- <form method="POST">
- {% csrf_token %}
- {{ form.as_p }}
- <input type="submit" value="Change my password">
- </form>
- {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement