一个名为django的ajax表单在添加其他表单时失去了价值

时间:2018-08-10 16:53:03

标签: jquery django-forms django-database

我是django和jquery的新手,正尝试开发第一个应用程序。我的问题是,当我通过ajax调用向div添加另一个(第二个及后续)modelformset时,django生成的modelformset字段值变为空白(重置为默认值)。

'。additem`是用于调用django视图函数的按钮的类,该函数生成表单集。 我认为这与绑定值到表单重置为默认值有关。我尝试添加event.preventdefault()但没有成功。

带有ajax调用的jQuery代码如下:

$(document).on("click", '.additem', function(event) {
    $.ajax({
        url: 'additem',
    data: { additem: 1},
    type: 'get',                   
    success: function(response){
    event.preventDefault();
            console.log(response);
            var form_idx = parseInt($("#id_detail-TOTAL_FORMS").val());
            modified_response = response.replace(/ detail - 0 / g, "detail-" + form_idx);
    $('#detail').html($('#detail').html() + modified_response); 
    $("#id_detail-TOTAL_FORMS").val(parseInt(form_idx) + 1);
        },
    failure: function(data) {
            alert('Got an error dude');
        }
    });
});

# django view code

    if request.method == 'GET' and 'additem' in request.GET:
        f = self.detailform_class
        fd = f._meta.fields

        formsetclass = modelformset_factory(detailmodel_class, form= f, fields= fd,extra =1, can_delete=True  )
        formset = formsetclass(queryset=detailmodel_class.objects.none(), prefix='detail',initial =[{self.related_field:pk}])
        html = render_to_string('mm/formset4.html', {'sub_form': formset})
        return HttpResponse(html)   

0 个答案:

没有答案