我想使用多个复选框更新数据 这是我的view.py
def update_kel_stat(request, id):
if request.method == "POST":
cursor = connection.cursor()
sql = "UPDATE keluargapeg_dipkeluargapeg SET KelStatApprov='3' WHERE (PegUser = %s )" % id
cursor.execute(sql)
这是我的template.html
<form method="post" action="" name="kel" enctype="multipart/form-data">
{% for keluarga in kels %}
<tr id="{{ keluarga.KelID }}">
<td>
<a href="#">{{ keluarga.KelNamaLengkap }}</a>
</td>
<td>{{ keluarga.KelStatApprov }}</td>
<td>{{ keluarga.KelKetRevisi }}</td>
<td><input type="checkbox" name="kel[]"
value="{{ keluarga.KelID }}"></td>
</tr>
{% endfor %}
<tr>
<td>
<button type="button" name="btn_delete" id="btn_delete"
class="btn btn-success"
onClick="setDeleteAction();">Approve
</button>
</td>
</tr>
</form>
如何从template.html中的复选框获取多个值到django view.py?
答案 0 :(得分:2)
首先,不建议用户使用原始SQL进行此类简单查询。使用django ORM更新一些记录非常容易:
Entry.objects.filter(id=10).update(comments_on=False)
至于你的问题,你可以这样做。在您的模板中:
{% for keluarga in kels %}
<input type="checkbox" name="kel" id="kel{{ forloop.counter }}" value="{{ keluarga.KelID }}">
<label for="kel{{ forloop.counter }}">Choice {{ forloop.counter }}</label>
{% endfor %}
在你看来:
kels = request.POST.getlist('kel')
Kel.objects.filter(id__in=kels).update(StatApprov=3)