2011-02-08 134 views
0

我有一个项目列表。每个项目都有一个复选框。我希望能够使用删除所有检查项目的按钮(被勾选的项目)来删除项目。我有一些jscript可以完成一半的工作,但是从我的数据库中删除这个项目已经证明了很多问题。当我按下删除按钮时,它将删除该项目。但是当我再次打开表单时,该项目再次返回。似乎无法删除对象:Django

这是我的看法。

def edit_order(request, order_no): 
#some code 
items = models.StorageItem.objects.filter(orderservicelist__order__pk = order.pk) 
#some more code including if POST 
    item = models.StorageItem.objects.get(pk = id) 
     if request.POST.get('delete'): 
      item.delete() 

而且我的模板

{% extends "base_popup.html" %} 


    {% block title %} 
      {{title}} 
    {% endblock %} 

    {% block script %} 

    <script type="text/javascript" src="{{MEDIA_URL}}ui/ui.datepicker.min.js"></script> 
    <script type="text/javascript"> 
      $(function(){ 
        $("#id_required_date").datepicker({dateFormat:"dd/mm/yy"}); 
        $(":checkbox").css("width","auto"); 
      }); 
      $(function(){ 
        $("#check_all").click(function(){ 
          if(this.checked ==true) 
              $("tbody :checkbox").each(function(){ 
                this.checked=true; 
              }); 
            else 
              $("tbody :checkbox").each(function(){ 
                this.checked=false; 
              }); 
        }); 
         }); 
    </script> 
    <script> 
    function hideCheckedRows() { 
     var checkboxes = document.getElementsByName("item"); 
     var checkboxes_to_remove = new Array(); 
     var count = 0; 
     for (var i = 0; i < checkboxes.length; i++) { 
      if (checkboxes[i].checked == true) { 
       checkboxes_to_remove[count++] = checkboxes[i]; 
      } 
     } 
     for (var i = 0; i < checkboxes_to_remove.length; i++) { 
      cbx = checkboxes_to_remove[i]; 
      // parentNode.parentNode.parentNode is the <tr> 
      // parentNode.parentNode is the <td> containing the checkbox 
      cbx.parentNode.parentNode.parentNode.removeChild(cbx.parentNode.parentNode); 
     } 
    } 
    </script> 


    {% endblock %} 
    {% block content %} 
        <div id="location_header">{{title}}</div> 
    <div id="form_container"> 
    <form action="." method="post"> 
      <fieldset class="model"> 

        <p> 
          <span style="font-weight:bold;font-size:14px">Contact : {{order.contact}}</span> 
        </p> 
        <p> 
          <span style="font-weight:bold;font-size:14px">Cost : {{order.cost}}</span> 
        </p> 
        {{ form.as_p }} 
      </fieldset> 
      <fieldset class="model"> 
        <legend>Items</legend> 
        <table id="items_table"> 

          <thead> 
            <tr> 
              <td><input type="checkbox" id="check_all" checked="checked"></td> 
              <td>Tiptop no</td><td>Client no</td><td>Title</td><td>Item type</td> 
              <td>Format</td> 
            </tr> 
          </thead> 
          <tbody> 
        {% for item in items %} 
          <tr> 
          <td><input type="checkbox" name="item" value="{{item.pk}}" checked="checked"></td> 
          <td>{{item.tiptop_id}}</td><td>{{item.alternative_id}}</td><td>{{item.title}}</td> 
          <td>{{item.type}}</td><td>{{item.format}}</td> 

          </tr> 
        {% endfor %} 
        </tbody> 
        </table> 
        <p> 
          <form method="post" action="help"> 
          <table width="60%"> 
            <tr> 
              <td> 
                <select name="contact_id"> 
                {% for contact in order.contact.client.contact_set.all %} 
                  <option value="{{contact.pk}}">{{contact}}</option> 
                {% endfor %} 
                </select> 
              </td> 
              <td> 
                <select name="status_id"> 
                {% for status in status_list %} 
                  <option value="{{status.pk}}">{{status}}</option> 
                {% endfor %} 
                </select> 
              </td> 
              <td><input type="submit" name="save_status" value="set status for selected items"></td> 
            </tr> 
          </table> 
        </form> 
        </p> 
      </fieldset> 

      <div id="form_footer"> 
        <span style="font-size:10px;font-weight:bold;margin-right:10px"> 
        </span> 
        <input type="button" value="Add item" onclick="window.location.href='{% url tiptop.views.client_items name.pk %}'" /> 
        <input type="submit" name="save_item" value="Save" onclick="validate_item(this.form)"> 
        <input type="button" name="delete" value="Delete Items" onclick="hideCheckedRows()"> 
      </div> 
    </form> 
    </div> 
    {% endblock %} 
+0

视图如何被调用? – 2011-02-08 11:12:10

+0

哦,抱起来,让我编辑我的模板。更新。有一个项目清单。显示他们的细节。 – Shehzad009 2011-02-08 11:15:18

回答

2

您的问题是request.POST从未包含delete关键。

type="button"元素需要type="submit"才能提交表格。

您只是隐藏了元素hideCheckedRows()