У меня есть приложение Django, и я хочу сделать страницу восстановления пароля. У меня есть пользовательская форма, которая наследуется от PasswordResetForm
. PasswordResetForm
может передать uidb64
и token
на emails/restore.html
самостоятельно, но как это сделать самостоятельно в моей пользовательской форме? Теперь Django говорит мне:
Reverse for 'password_reset_confirm' not found. 'password_reset_confirm' is not a valid view function or pattern name.
1 {% autoescape off %}
2 http://{{ domain }}{% url 'Authentication:password_reset_confirm' uidb64=uid token=token %}
3 {% endautoescape %}
, потому что я ничего не передал в params. Как передать uidb64
и token
?
forms.py
from django import forms
from django.contrib.auth.forms import User, PasswordResetForm, SetPasswordForm
...
class RestoreForm(PasswordResetForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ["email"]
views.py
def request_restore_password(request):
if request.method == 'POST':
form = RestoreForm(data=request.POST)
if form.is_valid():
form.save(from_email=AdminEmail, email_template_name='emails/restore.html', request=request)
return HttpResponse('123 for now')
else:
form = RestoreForm()
return render(request, 'request_restore_password.html', {'form': form})
по электронной почте / восстановить. html
{% autoescape off %}
http://{{ domain }}{% url 'Authentication:password_reset_confirm' uidb64=uid token=token %}
{% endautoescape %}