¿Cómo haría un conjunto de formularios dinámico en Django?

Así es como lo estoy haciendo:

{{ formset.management_form }}
<table>
    {% for form in formset.forms %}
        {{ form }}
    {% endfor %}
</table>
<a href="javascript:void(0)" id="add_form">Add Form</a>   

Y aquí está el 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);
});

Lo que me molesta específicamente es que tuve que escribir esoescapejs etiqueta de plantilla yo mismo. Simplemente elimina todas las líneas nuevas y escapa a las comillas simples para que no estropee mi cadena. Pero, ¿qué esperaban exactamente los fabricantes de Django que hiciéramos en esta situación? ¿Y por qué tienen esto?TOTAL_FORMS campo oculto, cuando podrían haber usado una matriz como<input name="my_form_field[0]" /> y luego contó su longitud en su lugar?

Respuestas a la pregunta(5)

Su respuesta a la pregunta