bugfix> django > 投稿

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から値を取得する方法を教えてください。

回答 1 件
  • POSTするフォームデータがありません-リストを一連の <li> としてレンダリングしています  要素が、それらはPOSTで通過しません。 <li> を変更する必要があります  必要なデータに非表示の入力を含めるには:

    <li>
        <input type="hidden" name="report_id" value="{{app.report_id}}">
        {{ app.report_name_sc }}
    </li>
    
    

あなたの答え