我有一个模板,用户搜索要删除的一些记录。
我在试图弄清楚如何从模型中删除多条记录时遇到了麻烦。
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执行此操作,或者我可以从表格中将值转换为表格
<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,但我不知道如何做到这一点。
请提供任何建议或指南
提前致谢
答案 0 :(得分: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