首页 > 解决方案 > 如何将输入字段值传递给views.py文件中的函数

问题描述

我正在尝试更新我的密码。对于该电子邮件 ID,新密码和确认新密码值通过 POST 方法传递给 views.py 函数。但是 POST 方法没有将任何值传递给 views.py 函数。我也尝试过使用 JAVASCRIPT 验证表单,但我没有这样做。我该如何解决这个问题。有人可以帮忙吗?

HTML 文件:

<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
    <meta charset="UTF-8">
    <title>Password Reset</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link href="{% static 'styles/style.css' %}" rel="stylesheet"/>
</head>
<body>
<section class="sflog" id="sflog">
    <div class="container-fluid">
        <div class="row">
            <div class="col-12" id="std">
                <form method="POST" name="forgot" action="{% url 'ufpasswordreset' %}">
                    {%csrf_token%}
                    <center>
                        <h3>Password <span>Reset</span> Form</h3><br>
                    </center>

                    <label style="color:white;padding-left:13%;">Enter Your Registered Email</label>
                     <center>
                         <input type="email" id="email" name="email" placeholder="Email"><br><br>
                         <span id="lemail"></span>
                     </center>
                     <label style="color:white;padding-left:13%;">Enter New Password</label>
                     <center>
                         <input type="password" id="pass" name="pass" placeholder="New Password"><br><br>
                         <span id="lpass"></span>
                     </center>
                     <label style="color:white;padding-left:13%;">Confirm New Password</label>
                     <center>
                         <input type="password" id="cpass" name="cpass" placeholder="Confirm New Password"><br><br>
                          <span id="lcpass"></span>
                     </center>
                    <center>
                         <button type="submit" name="submit" onclick="return reset()">Submit</button><br><br><br><br>
                    </center>

                </form>
                
            </div>
        </div>
    </div>
 </section>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script src="{% static 'js/scriptfunction.js' %}"></script>
</body>
</html>

视图.py

def user_forgot_password_reset(request):
if request.method == 'POST':
    print("hi")
    femail = request.POST.get('email')
    print(femail)
    fpassword = request.POST.get('pass')
    print(fpassword)
    fepassword = sha256(fpassword.encode()).hexdigest()
    fcpassword = request.POST.get('cpass')
    print(fcpassword)
    detail = clientreg.objects.filter(Email=femail)
    for i in detail:
        i.Password = fepassword
        i.save()
    details = clientlogin.objects.filter (Username=femail)
    for x in detail:
        x.Password = fepassword
        x.save()
    return redirect("userlogin")
else:
    return render(request, "password_reset.html")

网址.py

from django.urls import path,re_path
from . import views

urlpatterns=[
  path('Forgot_Password_Reset', views.user_forgot_password_reset, name="ufpasswordreset"),
  ]

JAVASCRIPT:

function reset()
{
    if(document.forgot.email.value=="")
    {
        document.getElementById("lemail").innerHTML="Enter Email ID";
        return false;
    }
    else
    {
        document.getElementById("lemail").innerHTML="";
        var mailformat = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
        if(document.forgot.email.value.match(mailformat))
            document.getElementById("lemail").innerHTML="";
        else
        {
            document.getElementById("lemail").innerHTML="Invalid Email";
            return false;
        }
    }
    if(document.forgot.pass.value=="")
    {
        document.getElementById("lpass").innerHTML="Enter Password";
        return false;
    }
    else
    {
        var pregexp=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
        if(document.forgot.pass.value.match(pregexp))
               document.getElementById("lpass").innerHTML="";
        else
        {
               document.getElementById("lpass").innerHTML="Contains eight characters,upper&lowercase letter,digit&special characters";
               return false;
        }
    }
    if(document.forgot.cpass.value=="")
    {
        document.getElementById("lcpass").innerHTML="Enter Password";
        return false;
    }
    else
    {
        document.getElementById("lcpass").innerHTML="";
        if(document.forgot.pass.value!=document.forgot.cpass.value)
       {
            document.getElementById("lcpass").innerHTML="Password Mismatch";
            return false;
       }
       else
            document.getElementById("lcpass").innerHTML="";
    }
}

标签: javascriptpythondjangopost

解决方案


推荐阅读