输入字段上的GET请求在Django中返回None

时间:2018-07-27 15:28:31

标签: python django post request

我正在尝试从输入字段中检索数据。我想导出一个.xls文件,其中在两个日期之间选择了数据。问题是当我尝试检索它们时,我得到的是“无”值。

.html

<form method="POST">
    <div class="col-6">
       <label class="form-control-label">Date de début</label>
       <input class="form-control" id="datepicker" type="text" name="date_deb">
    </div>
    <div class="col-6">
       <label class="form-control-label">Date de fin</label>
       <input class="form-control" id="datepicker-2" type="text" name="date_fin">
    </div>
    <a type="submit" class="btn btn-primary" href="{% url 'export_users_xls' %}">Exporter sous le format excel</a> 
</form>

views.py

def export_users_xls(request):
   response = HttpResponse(content_type='application/ms-excel')
   response['Content-Disposition'] = 'attachment; filename="contrats.xls"'

   wb = xlwt.Workbook(encoding='utf-8')
   ws = wb.add_sheet('Contrats')

   # Sheet header, first row
   row_num = 0

   font_style = xlwt.XFStyle()
   font_style.font.bold = True

   columns = ['Référence', 'Date de régularisation', "Type d'apporteur", 'Frais de chargement', "Type d'encours", 'Montant Euros', 'Montant UC', 'Montant Prudente']

   for col_num in range(len(columns)):
    ws.write(row_num, col_num, columns[col_num], font_style)

   # Sheet body, remaining rows
   font_style = xlwt.XFStyle()

   date_deb = request.POST.get('date_deb')
   date_fin = request.POST.get('date_fin')

   rows = models.Acte.objects.all().filter(date__range=[date_deb, date_fin]).values_list('ref', 'date', 'apporteur', 'frais', 'type_enc', 'montant_euros', 'montant_uc', 'montant_prud')
   for row in rows:
       row_num += 1
       for col_num in range(len(row)):
           ws.write(row_num, col_num, row[col_num], font_style)

    wb.save(response)
    return response

您是否知道该问题可能来自何处?

谢谢您的回答!

1 个答案:

答案 0 :(得分:0)

我认为将数据获取到视图的最简单方法是将网址移动到表单中的操作字段,就像这样

<form method="post" action="{% url 'export_users_xls' %}">

然后只需单击一个按钮。所以代替

<a type="submit" class="btn btn-primary" href="{% url 'export_users_xls' %}">Exporter sous le format excel</a>  

尝试这个

<input type="submit" value="Exporter sou le format excel" />