我是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)