<!– リスト先頭6個のみを表示 –> <div class=”row”> <form action=””> {% for parameter in parameters|slice:’:6′ %} <div class=”col-md-4″> <div class=”mb-3″> <label for=”{{ parameter.label }}” class=”form-label”>{{ parameter.label }}</label> <input type=”text” class=”form-control” id=”{{ parameter.name }}” name=”{{ parameter.name }}” value=”{{ request.POST.parameter.name }}”> </div> </div> {% if forloop.counter|divisibleby:3 and not forloop.last %} </div> <div class=”row”> {% endif %} {% endfor %} </div> <!– 多くの要素がある為、他の要素はアコーディオンで表示 –> <div id=”accordion”> <div class=”card”> <div class=”card-header” id=”headingOne”> <h5 class=”mb-0″> <button class=”btn btn-link” data-bs-toggle=”collapse” data-bs-target=”#collapseOne” aria-expanded=”true” aria-controls=”collapseOne”> 追加項目を表示 </button> </h5> </div> <div id=”collapseOne” class=”collapse” aria-labelledby=”headingOne” data-bs-parent=”#accordion”> <div class=”card-body”> {% for parameter in parameters|slice:”6:” %} <div class=”mb-3″> <label for=”{{ parameter.label }}” class=”form-label”>{{ parameter.label }}</label> <input type=”text” class=”form-control” id=”{{ parameter.name }}” name=”{{ parameter.name }}” value=”{{ request.POST.parameter.name }}”> </div> {% endfor %} </div> </div> </div> </div> <!– フォームの送信 –> <button type=”submit” class=”btn btn-primary” style=”height: 60px;”>調査開始</button> </form> 上手く機能しない。

問題が特定できませんでしたが、コード内の一部を修正して整理しました。以下が修正されたコードです。

html
<!-- リスト先頭6個のみを表示 --> <div class="row"> <form action="" method="post" enctype="multipart/form-data"> {% csrf_token %} {% for parameter in parameters|slice:':6' %} <div class="col-md-4"> <div class="mb-3"> <label for="{{ parameter }}" class="form-label">{{ parameter }}</label> <input type="text" class="form-control" id="{{ parameter }}" name="{{ parameter }}" value="{{ request.POST.parameter }}"> </div> </div> {% if forloop.counter|divisibleby:3 and not forloop.last %} </div> <div class="row"> {% endif %} {% endfor %} <!-- アコーディオンで表示するフォーム --> <div id="accordion"> <div class="card"> <div class="card-header" id="headingOne"> <h5 class="mb-0"> <button class="btn btn-link" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> 追加項目を表示 </button> </h5> </div> <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordion"> <div class="card-body"> {% for parameter in parameters|slice:"6:" %} <div class="mb-3"> <label for="{{ parameter }}" class="form-label">{{ parameter }}</label> <input type="text" class="form-control" id="{{ parameter }}" name="{{ parameter }}" value="{{ request.POST.parameter }}"> </div> {% endfor %} </div> </div> </div> </div> <!-- フォームの送信 --> <button type="submit" class="btn btn-primary" style="height: 60px;">調査開始</button> </form>

変更点:

  1. method="post" enctype="multipart/form-data"form タグに追加。
  2. アコーディオンの中の label タグや input タグの for 属性や id 属性を修正。
  3. label タグや input タグの name 属性を修正。

これでコードが整理され、機能するようになるかもしれません。もし問題が解消されない場合は、エラーメッセージや具体的な問題を教えていただければ、さらにサポートできるかもしれません。

未分類

Posted by ぼっち