Django自定义表单无法获取POST变量问题求助
解决Django自定义表单POST变量无法获取的问题
你的问题根源是所有表单输入字段都缺少name属性。HTML规范中,只有带有name属性的表单控件,其值才会被浏览器提交到服务器;id属性仅用于前端DOM操作或标签关联,不参与表单数据的提交。
修复步骤:
给每个<input>标签添加name属性,属性值可与id保持一致,修改后的表单代码如下:
<div class="row justify-content-center"> <div class="form-group col-md-6"> <form action="{% url 'generate-pdf' %}" method="POST"> {% csrf_token %} <label>Nom</label> <input type="text" class="form-control" id="first_name" name="first_name" value="{{ property.name }}" required> <label>Prénom</label> <input type="text" class="form-control" id="last_name" name="last_name" value="{{ property.last_name }}" required> <label>Email</label> <input type="email" class="form-control" id="email" name="email" value="{{ property.email }}" required> <label>Texte du loyer</label> <input type="text" class="form-control" id="rent_text" name="rent_text"> <label>Loyer</label> <input type="number" step="0.01" lang="en" class="form-control" id="rent" name="rent" value="{{ property.rent }}" onkeyup="add_number()" required> <label>Provision</label> <input type="text" class="form-control" id="provision" name="provision" onkeyup="add_number()" value="0" required> <label>Total du loyer</label> <input type="text" class="form-control" id="total" name="total" value="{{ property.rent }}" required> <div class="row"> <div class="col-md-4"> <label>Début de la période</label> <input type="date" class="form-control" id="first_date" name="first_date"> </div> <div class="col-md-4"> <label>Fin de la période</label> <input type="date" class="form-control" id="last_date" name="last_date"> </div> <div class="col-md-4"> <label>Date du paiement</label> <input type="date" class="form-control" id="paiement_date" name="paiement_date"> </div> </div> <button type="submit" class="btn btn-primary">Envoyer</button> </form> </div> </div>
验证修复:
修改后重新提交表单,在视图中即可通过request.POST.get('first_name')、request.POST.get('rent')等方式获取对应字段的值。
内容的提问来源于stack exchange,提问作者Hasen90
相关产品推荐
相关产品推荐

