2015-12-14 79 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