如何将html文件的值传递给views.py文件?

问题描述:

用户输入10位数字后会自动调用python函数。我需要发送文本框的值到python函数(views.py)。如何在views.py中获得价值?如何将html文件的值传递给views.py文件?

我不想当用户点击提交按钮来获取文本框中的值。

base.html文件

<input type="text" name="vat" id="vat1" placeholder="Please Enter 10 digits number"> 

脚本

var Value = document.getElementById('vat1').value; 
alert(Value); 

views.py

def call_operator(request): 
    text_box_value = request.POST.get('vat') 
    print(text_box_value) 
    print("get operator name and circle name") 
    template_name = 'mobile_recharge.html' 
    extended_template = 'base.html' 
    if request.user.is_authenticated(): 
     extended_template = 'base_login.html' 
    return render(
     request, template_name, 
     {'extended_template': extended_template} 
    ) 

urls.py

url(r'^call_operator/$', call_operator) 

脚本

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#vat1').keyup(function(){ 
      if ($(this).val().length == 10){ 
       $('your_form').submit(); 
       alert("condition satisfied"); 
      $.ajax({ 
        type: "GET", 
        url: "http://localhost:8090/call_operator/" 
        }); 
      } 
     }); 
    }); 
</script> 

HTML文件

  <form method="POST" role="form" name="your_form"> 
       <input type="text" name="vat" id="vat1" placeholder="Please Enter 10 digits number"> 
     </form> 

您可以使用Ajax。这是另一种方式来做到这一点

base.html文件

<form method="POST" name="your_form" action="{% url 'your_app:your_url' %}"> 
    <input type="text" name="vat" id="vat1" placeholder="Please Enter 10 digits number"> 
</form> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#vat1').keyup(function(event){ 
      if (event.which == 13 || event.keyCode == 13){ 
       if ($(this).val().length == 10){ 
        $('your_form').submit(); 
       }else{ 
        // Show message if the text length is lesser than 10 
       } 
      } 
     }); 
    }); 
</script> 
+1

计数器是不是好主意。 ('#vat1')。val()。length == 10 – Satevg

+0

获取文本框的值无:def call_operator(请求): text_box_value = request.POST.get('vat')用户可以使用退格键等 print(text_box_value) –

+0

请分享您的views.py,urls.py和模板完成! –