我尝试使用模板中的复选框删除数据库中显示的一些数据。我有一个表格,检查项目后,将它们传递给“ supprimer_ue”视图。我的表格格式错误,在验证时会引起问题吗?如何将项目列表传递给视图以将其删除? 这是代码:
# Views
# La view qui supprime les UE
def supprimer_ue(request, code):
ue = get_object_or_404(UE, code_ue=code);
ue.delete();
return redirect('liste_ue', filiere=request.session.get('filiere'));
# template
<form class="form-inline" action="{% url 'supprimer_uue code=ue.code_ue %}" method="post">
<div class="form-group mx-sm-3 mb-2">
<label for="action">Action : </label>
<select name="matricules" id="matricules" class="form-control">
<option value="rien">----------</option>
<option value="supprimer">Supprimer les UEs sélectionner</option>
</select>
</div>
<button type="submit" class="btn btn-primary mb-2">Envoyer</button>
</form>
</br>
<table class="table table-striped">
<caption class="">Liste des UEs de la filière {{ filiere }}</caption>
<thead> <!-- En-tête du tableau -->
<tr>
<th><input type="checkbox" id="checkall"/></th>
<th>Code</th>
<th>Intitulé</th>
<th>Type</th>
<th>Niveau</th>
<th>Filière</th>
<th>Semestre</th>
<th> </th>
<th> </th>
</tr>
</thead>
<tbody> <!-- Corps du tableau -->
{% for ue in ues %}
<tr>
<th><input type="checkbox" class="checkbox" value=ue.code_ue/></th>
<td>{{ ue.code_ue }}</td>
<td>{{ ue.intitule_ue }}</td>
<td>{{ ue.type_ue }}</td>
<td>{{ ue.niveau }}</td>
<td>{{ ue.filiere }}</td>
<td>{{ ue.semestre }}</td>
<td><a href="{% url 'supprimer_ue' code=ue.code_ue %}">Supprimer</a></td>
<td><a href="{% url 'modifier_ue' code=ue.code_ue %}">Modifier</a></td>
</tr>
{% endfor %}
</tbody>
<script type="text/javascript">
$(document).ready(function() {
// Check or Uncheck all checkboxes
$("#checkall").change(function(){
var checked = $(this).is(':checked');
if (checked) {
$(".checkbox").each(function() {
$(this).prop("checked", true);
});
} else {
$(".checkbox").each(function() {
$(this).prop("checked", false);
});
}
});
//Changing state of CheckAll checkbox
$(".checkbox").click(function() {
if ($(".checkbox").length == $(".checkbox:checked").length) {
$("#checkall").prop("checked", true);
} else {
$("#checkall").removeAttr("checked");
}
});
});
</script>
</table>