首页 > 解决方案 > 从 Django 前端表单接收数据

问题描述

我正在尝试做的事情:

我正在尝试从 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
    })

前端表格:

<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”中获取价值。它总是显示空白值。

感谢您为解决此问题提供的帮助或任何解决方法。提前致谢。

标签: djangoformspost

解决方案


通过删除“if form.is_valid()”语句,并改回 request.POST.get 方法,它正在工作

def panelThree(request):

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

        if request.method == 'POST':
            form = QueryForm(request.POST)

            startDate = request.POST.get('startDate')
            endDate = request.POST.get('endDate')
            byOtherField = request.POST.get('byOtherField')

        else:
            form = QueryForm()

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

推荐阅读