2015-12-14 62 views
0

我有一個模板,用戶搜索某些要刪除的記錄。Django刪除表單

我有麻煩試圖找出如何從模型中刪除多個記錄。

def XMLFieldsView(request): 
     if request.method == 'POST': 
      lista = request.POST.getlist('eliminar') 
      """ Here I am lost """ 
     else: 
      lista = 'nada' 
      form = BuscarServicioForm() 
      idxml = request.GET.get('id_xml') 
      tabla = XMLFORMTable(XML_FORM.objects.filter(id_xml = 00)) 
      try: 
       idxml = idxml 
      except ValueError: 
       idxml = 00 
      if idxml: 
       tabla = XMLFORMTable(XML_FORM.objects.filter(id_xml = idxml)) 
      RequestConfig(request,paginate={"per_page":60}).configure(tabla) 


     return render_to_response('listacampos.html', 
            {'table':tabla,'form':form,'lista':lista}, 
            context_instance=RequestContext(request)) 

使用形式

BuscarServicioForm 挑一組記錄,在那裏他可以選擇哪些記錄刪除用戶。

但我不知道我是否需要一個formset要做到這一點我也可以從表中打開HTML表格到表單

<form method="POST" id="table_form"> 
<table > 
.... 
</table> 
<input type="submit"> 
</form> 

拿這個值獲得那個職位數據刪除記錄。

我使用的Django tables2呈現這樣的表:

TEMPLATE_CHECK = """ 
<span class="input-group-addon"> 
     <input type="checkbox" id="id_eliminar" name="eliminar"> 
</span> 
""" 
class XMLFORMTable(tables.Table): 
     eliminar = tables.TemplateColumn(TEMPLATE_CHECK,verbose_name='Eliminar') 
     class Meta: 
      model = XML_FORM 
      exclude = ['id_form','obs'] 

我想用一個formset,但我不如何做到這一點。

任何建議或指導,請

在此先感謝

回答

1

HTML模板必須知道對象的PK來獲得對象的列表。

class XMLFORMTable(tables.Table): 
     eliminar = tables.CheckBoxColumn(accessor='pk') 
     class Meta: 
      model = XML_FORM 
      exclude = ['id_form','obs'] 

如果您將pk賦予複選框的值,您將檢索已選元素的值列表。

import render 

def XMLFieldsView(request): 
    if request.method == 'POST': 
     lista = request.POST.getlist('eliminar') 
     """ Here I am lost """ 
     for pk in lista: 
      get_object_or_404(ElObjeto, pk=pk).delete() 
    else: 
     .... 

    return render(request, listacampos.html,{'table':tabla,'form':form,'lista':lista}) 

而且渲染,是在將選擇render_to_response自動使用RequestContext的

+0

外觀極好的快捷方式,工作沒有任何問題,謝謝 – joselegit