Я пытаюсь сделать простое всплывающее окно подтверждения, чтобы удалить строку в таблице данных.
У меня есть список «ящиков» и в каждой строке кнопка удаления. Когда я нажимаю кнопку удаления, появляется модальное всплывающее окно, и если пользователь нажимает «да», то запись должна быть удалена.
Проблема в том, что я не могу "передать" идентификатор окна в модальное всплывающее окно, а не в свой метод views.py. Если, например, в моем списке 3 поля (Id 1, 2 и 3), метод на views.py всегда получает первый Id (1)
Это код:
<tbody>
{% for box in boxes %}
<tr>
<td>{{ box.id }}</td>
<td>{{ box.code }}</td>
<td>{{ box.description }}</td>
<td><button type="button" value="{{ box.id }}" class="btn waves-effect waves-light btn-secondary " data-toggle="modal" data-target=".bs-example-modal-lg"><i class="fas fa-trash-alt"></i></button></td>
<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myLargeModalLabel">Confirmation</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<p>Do you really want to delete this box?</p>
</div>
<div class="modal-footer">
<button type="submit" name="box_id" value="{{ box.id }}" class="btn btn-primary waves-effect text-left" >Yes</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
</tr>
{% endfor %}
</tbody>
Я уже пытался переместить модал за пределы for, но в этом случае я не получаю Id с другой стороны.
Мой метод на views.py очень прост, он просто печатает идентификатор:
def delete_box(request):
if 'username' not in request.session:
return render(request, 'login.html')
if request.method == 'POST':
print(request.POST['box_id'])
boxes = Box.objects.all()
return render(request, 'list-box.html', {'boxes': boxes})
Ценю любую помощь.