Djoser override reset password email с шаблоном

Я использую Django rest framework и Djoser для аутентификации и регистрации пользователей.

Я выполнил часть активации по шаблону. Но теперь проблема в том, что я хочу использовать html шаблон для восстановления пароля. Я создал страницу html-формы для отправки формы сброса пароля. Когда я нажимаю на submit, она не принимает новый пароль и сброшенный пароль по методу post. выдавая ошибку.

Код работает на postmen, но я получаю ошибку, когда отправляю его через html шаблон

Вот мой djoser settings.py

DJOSER = {
'LOGIN_FIELD': 'email',
'USER_CREATE_PASSWORD_RETYPE': True,
'USERNAME_CHANGED_EMAIL_CONFIRMATION': True,
'PASSWORD_CHANGED_EMAIL_CONFIRMATION': True,
'SEND_CONFIRMATION_EMAIL': True,
'SET_USERNAME_RETYPE': True,
'SET_PASSWORD_RETYPE': True,
'PASSWORD_RESET_CONFIRM_URL': 'password/reset/confirm/{uid}/{token}',
'USERNAME_RESET_CONFIRM_URL': 'email/reset/confirm/{uid}/{token}',
'ACTIVATION_URL': 'activate/{uid}/{token}',
'SEND_ACTIVATION_EMAIL': True,
'EMAIL':
{
    'activation': 'user_profile.email.ActivationEmail',
    'confirmation':'user_profile.email.ConfirmationEmail',
    'password_reset':'user_profile.email.PasswordResetEmail',
    'password_changed_confirmation':'user_profile.email.PasswordChangedConfirmationEmail'
},
'SERIALIZERS': {
    'user_create': 'user_profile.serializer.UserSerializer',
    'user': 'user_profile.serializer.UserSerializer',  
 }

}

views.py

class ResetPasswordView(View):
    def get (self, request, uid, token):
        return render(request, 'reset_password.html')
    def post (self, request,uid,token):
        new_password=requests.post.get("new_password")
        re_new_password=requests.post.get("re_new_password")
        payload = json.dump({'uid': uid, 'token': token, 'new_password': new_password, 're_new_password': re_new_password})
        protocol = 'https://' if request.is_secure() else 'http://'  
        web_url = protocol + request.get_host() + '/'
        password_reset_url = "users/reset_password_confirm/" # url used for activate user
        password_post_url = web_url + AUTHENTICATION_BASE_ROUTE + password_reset_url
        response = requests.post(password_post_url,data=payload)
        return HttpResponse(response.text)

urls.py

    re_path(r'^password/reset/confirm/(?P<uid>[\w-]+)/(?P<token>[\w-]+)/$', ResetPasswordView.as_view()),

reset_password.html

<form action="" method="post">
                      {% csrf_token %}
                      {{ form.as_p }}

                      <div class="container">
                        <h1>Register</h1>
                        <label for="psw"><b>Repeat Password</b></label>
                        <input type="password" placeholder="Enter Password" name="new_password" id="new_password" required>
                        <label for="psw-repeat"><b>Repeat Password</b></label>
                        <input type="password" placeholder="Repeat Password" name="re_new_password" id="re_new_password" required>
                        <hr>
                        <button type="submit" class="registerbtn">SUBMIT</button>
                      </div>
                    </form>

email.py

from djoser import email


class ActivationEmail(email.ActivationEmail):
    template_name = 'activation.html'

class ConfirmationEmail(email.ConfirmationEmail):
    template_name = 'confirmation_email.html'

class PasswordResetEmail(email.PasswordResetEmail):
    template_name = 'password_reset_email.html'

class PasswordChangedConfirmationEmail(email.PasswordChangedConfirmationEmail):
    template_name = 'password_changed_confirmation_email.html'
    

urls.py

AUTHENTICATION_BASE_ROUTE = 'authentication/v2/'

Пожалуйста, сообщите мне, чего мне не хватает в шаблоне

Вернуться на верх