我使用POST方法有以下表格。
<form action = "{% url 'submittedupdate' %}" form method = "POST">
{% csrf_token %}
<div class="well">
<h4 style="margin-top: 0"><strong>Update Application(s)</strong></h4>
{% for app in applicationaccess %}
<li name = "report_id" value = "{{app.report_id}}">{{ app.report_name_sc }}</li>
{% endfor %}
</div>
</form>
当前表单正确显示数据,但是当我尝试使用
在下一个视图中检索请求时currlist = request.POST.getlist('report_id')
print(currlist)
我得到一个空列表。
在上一个视图中,applicationaccess被定义为reportaccess,如下所示:
owner = ADMirror.objects.get (employeentname=request.POST.get('userpost'))
currentaccess = QVReportAccess.objects.filter(ntname = 'owner.employeentname, active = 1).values_list('sr_datareduce_summary_code', flat = True).distinct()
reportIds = QVReportAccess.objects.filter(ntname = 'owner.employeentname).values_list('report_id', flat=True)
currentcheckedlist = request.POST.getlist('current_report')
reportaccess = QvReportList.objects.filter(report_id__in= currentcheckedlist).values('report_id','report_name_sc').distinct()
奇怪的是,对于同一个POST中的其他项目,我可以将它们拉进去。
为什么我得到一个空列表,如何在上面的for循环中获取report_id中的值?
答案 0 :(得分:2)
您没有要POST的任何表单数据 - 您将列表呈现为一系列<li>
元素,但这些元素不会在POST中出现。您应修改<li>
以包含包含所需数据的隐藏输入:
<li>
<input type="hidden" name="report_id" value="{{app.report_id}}">
{{ app.report_name_sc }}
</li>