Django 表单 request.POST.get() 不返回任何值

时间:2021-07-24 08:43:43

标签: html django

这是我的 Django

if request.method == 'GET':
     term = request.POST.get('term')
     grade = request.POST.get('grade')
     year = request.POST.get('year')

这是我的 HTML 代码

                      <form method="GET">
                          <label><b>Term</b></label>
                        <input type="text" name='term'  id='term' placeholder="Ex:Term3">
                          <label><b>Grade</b></label>
                          <input type="text" name='grade' id='grade'  placeholder="Ex:Grade 11A">
                          <label><b>Year</b></label>
                          <input type="number" name='year' id="year" placeholder="Ex:2021">

                        <button type="submit" class="btn btn-primary"><a href="{% url 'prediction'%} ">Search</a></button>
                     </form>

但是学期和年级总是显示为空 任何一个摄像头帮助我

2 个答案:

答案 0 :(得分:1)

由于请求方法是GET,所以获取数据是用request.GET,而不是request.POST,所以:

if request.method == 'GET':
    term = request.GET.get('term')
    grade = request.GET.get('grade')
    year = request.GET.get('year')

不过,我建议使用 (Model)Form 来处理数据,因为表单执行验证、清理和删除大量样板代码。

您还应该在 <form> 标记中指定提交请求的 URL,因此:

<form method="GET" action="{% url 'prediction' %}">
    <label><b>Term</b></label>
    <input type="text" name='term'  id='term' placeholder="Ex:Term3">
    <label><b>Grade</b></label>
    <input type="text" name='grade' id='grade'  placeholder="Ex:Grade 11A">
    <label><b>Year</b></label>
    <input type="number" name='year' id="year" placeholder="Ex:2021">

    <button type="submit" class="btn btn-primary">Search</button>
</form>

答案 1 :(得分:0)

因为您从 request.POST 获取表单值。

你的表单方法是GET

所以你应该使用 request.GET.get("whatever")

如果您的表单方法是 POST

你应该使用 request.POST.get("whatever")