使用复选框删除对象

时间:2018-02-26 10:52:04

标签: django django-templates django-views

我想删除列表中标有复选框的对象。我已阅读其他帖子并尝试理解它,但我似乎错过了一些东西。

views.py

def phase1(request, id):
  ...
  if request.POST.get('delete'):
    Descriptor.objects.filter(id__in=request.POST.getlist('item')).delete()
    return render(request, 'szenario/phase1.html', context)

template phase1.html

<ul>
  {% for Descriptor in projectdescriptors %}
        <li>
          <tr class="item">
            <input type="checkbox" name="item" value="{{Descriptor.name}}">
          </tr>
          {{Descriptor.name}}
        </li>
  {% endfor %}

  <form  method="post">
    {% csrf_token %}
    <h1><input type="submit" name="delete" value="Delete selected descriptors" /></h1>
  </form>
</ul

按此按钮会重新加载页面,但所选的条目仍然存在。我究竟做错了什么?任何帮助表示赞赏。

注意:我的目标是在我了解如何使用它们时立即使用AJAX和信号,但是现在我只想制作一个简单的解决方案来专注于其他任务。

1 个答案:

答案 0 :(得分:0)

<form  method="post">
    {% csrf_token %}
<ul>
  {% for Descriptor in projectdescriptors %}
        <li>
          <tr class="item">
            <input type="checkbox" name="item" value="{{Descriptor.id}}">
          </tr>
          {{Descriptor.name}}
        </li>
  {% endfor %}


    <h1><input type="submit" name="delete" value="Delete selected descriptors" /></h1>
  </form>
</ul>

您的商品应位于form tag