我是这样做的:
{{ formset.management_form }}
<table>
{% for form in formset.forms %}
{{ form }}
{% endfor %}
</table>
<a href="javascript:void(0)" id="add_form">Add Form</a>
下面是JS:
var form_count = {{formset.total_form_count}};
$('#add_form').click(function() {
form_count++;
var form = '{{formset.empty_form|escapejs}}'.replace(/__prefix__/g, form_count);
$('#forms').append(form)
$('#id_form-TOTAL_FORMS').val(form_count);
});
特别困扰我的是,我必须自己编写escapejs
模板标记。它只是去掉所有的换行符并转义任何单引号,这样它就不会弄乱我的字符串。但是,在这种情况下,Django的制造者到底希望我们做什么呢?当他们可以使用像<input name="my_form_field[0]" />
这样的数组,然后计算它的长度时,为什么他们有这个TOTAL_FORMS
隐藏字段?
https://stackoverflow.com/questions/2353710
复制相似问题