在Django视图中获取多个复选框POST值

时间:2019-06-07 09:15:56

标签: django

通过使用django视图,我需要根据从html模板中选中的复选框列表删除数据库中的行

index.html

<form method="post" action="{% url 'mul_delete' %}">
{% csrf_token %}        
<button type="sumbit" name="del" id="del">Delete</button>
{% for smail in form1 %}
<input type="checkbox" name="check" id="check" class="check" value="{{smail.id}}"/>
</form>

view.py

def mul_delete(request):
    if request.method == 'POST':
        chk = request.POST.getlist('check')
        print(chk)

    return redirect('/form1')

[1,2,3,4]

1 个答案:

答案 0 :(得分:0)

如果您从单选按钮获取 ID ,则只需传递该ID即可查询其提取并删除。

def mul_delete(request):
    if request.method == 'POST':
        chk = request.POST.getlist('check')
        print(chk)
    Model.objects.filter(id=chk).delete()     #<--- user filter or get
    return redirect('/form1')

如果您要删除多个对象,则可以将所有id作为列表传递给查询集,这将过滤所有对象并因此删除它们。

Model.objects.filter(id__in=list_var).delete()     #<--- user filter only