从Django前端表单接收数据

时间:2018-05-14 00:35:28

标签: django forms post

我想做的事情:

我正在尝试从Django前端表中获取数据,并将其发布回前端。  我没有使用modelForm,我以为我不需要将数据保存到数据库。

我的代码:

在views.py中

def panelThree(request):

    startDate = ''
    endDate = ''
    byOtherField = ''

    if request.method == 'POST':
        form = QueryForm(request.POST)
        if form.is_valid():
            startDate = request.POST.get('date')
            endDate = request.POST.get('date1')
            byOtherField = request.POST.get('date2')

    else:
        form = QueryForm()

    # if not byOtherField:
    dataTable = Production.objects.order_by('-id')
    return render(request, 'frontend/panelThree.html', {
        'form': form, 'dataTable': dataTable,  'startDate':startDate
    })

frontend_form:

<form method="post">
      {% csrf_token %}
      <div class="row">
          <div class="col-md-8">
            <div class="row">
                    <div class="col-md-4">
                      <label >
                       TextField1
                      </label>
                      <input class="form-control" id="date" name="date" placeholder="MM/DD/YYYY" type="text"/>
                      <p> >> Start Date </p>
                    </div>
                   <div class="col-md-4">
                        <label class="control-label " for="date1">
                         TextField2
                        </label>
                        <input class="form-control" id="date1" name="date1" placeholder="MM/DD/YYYY" type="text"/>
                        <p> >> End Date </p>
                   </div>
                <div class="col-md-4">
                   <label class="control-label " >
                    Or
                   </label>
                  <label class="control-label " for="date2">
                   TextField3
                  </label>
                  <input class="form-control" id="date2" name="date2" placeholder="MM/DD/YYYY" type="text"/>
                  <p> >> By Other Field </p>
                 </div>
           </div>
         </div>
        <div class="col-md-4">
                 <div class="button-box">
                     <button class="btn btn-primary " name="submit" type="submit"> Search </button>
                </div>
         </div>
       </div>
    </form>

我的错误:

没有错误,但我无法从表单帖子中获取值到'startDate'。它始终显示空白值。

我感谢您帮助解决此问题或任何解决方法。提前谢谢。

2 个答案:

答案 0 :(得分:0)

这里有2个问题。

1)html中的字段名称不正确。

<input class="form-control" id="date" name="date" placeholder="MM/DD/YYYY" type="text"/>

此处的name字段应设置为startDateid字段也应如此。

2)你直接从POST获取数据。

验证表单is_valid后,您应该从中获取数据:

startDate = form.cleaned_data['startDate']

答案 1 :(得分:0)

删除&#34; if form.is_valid()&#34;声明,并改回request.POST.get方法,它的工作

tf.contrib.distributions.MultivariateNormal