【发布时间】:2015-10-29 05:24:01
【问题描述】:
我正在尝试实现一个 django 表单集(用户可以从表单集中动态添加/删除表单)。
我使用 JS 添加新行(使用 empty_form):
$("#add-item").click(function(e){
e.preventDefault();
var count = parseInt($('#id_form-TOTAL_FORMS').val());
$('.invoice-items').append($('#empty_invoice_item').html().replace(/__prefix__/g, count));
$('#id_form-TOTAL_FORMS').attr('value', count+1);
$(".invoice-items .invoice-item .col-lg-9 .form-group:last-child").last().append('<a href="#" class="delete-item"><i class="glyphicon glyphicon-remove"></i></a>')
});
我还使用 JS 在特定表单上设置 DELETE 标志。一切都传递给视图。
我的视图(部分)代码:
invoice_form = InvoiceForm()
invoice_item_helper = InvoiceItemHelper
InvoiceItemFormset = formset_factory(InvoiceItemForm, extra=0, max_num=15, validate_max=True, min_num=1, validate_min=True, can_delete=True)
formset = InvoiceItemFormset()
if request.method == 'POST':
invoice_form = InvoiceForm(request.POST)
formset = InvoiceItemFormset(request.POST)
问题是,django 总是显示表单集中的所有表单,即使是那些标记为删除的表单。因此,即使我的发票表格有问题并且无法验证,它也会显示带有错误消息的发票表格和所有表格(再次)。
如何完全删除 if request.method == 'POST': 块中标记为删除的表单?有可能吗?
【问题讨论】:
-
您是否尝试在 POST 失败或 POST 成功后删除标记为删除的表单?
-
您使用的是什么 django 版本。同时展示完整的代码 sn-p,包括 forms.py 和 views.py。
标签: python django django-forms