我正在尝试做一个简单的确认弹出窗口来删除数据表上的一行。 我有一个“框”列表,每行都有一个删除按钮。当我单击“删除”按钮时,会出现一个模式弹出窗口,如果用户单击“是”,则应删除该记录。
问题是我无法将框ID“传递”给模式弹出窗口,而不是传递给views.py上的方法。例如,如果我的清单上有3个框(编号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上的方法非常简单,它只显示id:
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})
感谢任何帮助。