<!– リスト先頭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>
変更点:
method="post" enctype="multipart/form-data"をformタグに追加。- アコーディオンの中の
labelタグやinputタグのfor属性やid属性を修正。 labelタグやinputタグのname属性を修正。
これでコードが整理され、機能するようになるかもしれません。もし問題が解消されない場合は、エラーメッセージや具体的な問題を教えていただければ、さらにサポートできるかもしれません。

ディスカッション
コメント一覧
まだ、コメントがありません