Django 删除表单集

Django delete formset

我有一个模板,用户可以在其中搜索要删除的一些记录。

我在尝试弄清楚如何从模型中删除多条记录时遇到了麻烦。

    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 pick a group of records, where he can choose which records to delete.

但如果我需要使用表单集来执行此操作,或者我可以从 table 中获取值,将 HTML table 转换为表单

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

并获取post数据删除记录。

我正在使用 django-tables2 以这种方式呈现 table:

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']

我正在考虑使用表单集,但我不知道该怎么做。

请提供任何建议或指导

提前致谢

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})

Also render,是 render_to_response 的快捷方式,它将自动使用 RequestContext