Прошу помощи в проблеме создания дополнительных полей в django formset.
Те кто работает с Django, знают, что есть наборы форм. На странице их можно создавать динамически, но с определенными id. То есть:
form.html
<form action="." method="post" class="recipe_form">
<input type='hidden' name='csrfmiddlewaretoken' value='6c8MxA6cAjA2a75H7QbATliuBwO8Xy1xl4JNgga4FUVpQruRCYMSolZJY2eSdCYn' />
<div>
<div style="margin: 5px">
<div class="">
<label for="id_name">Name:</label>
<input id="id_name" maxlength="100" name="name" type="text" required />
</div>
</div>
<div style="margin: 5px">
<div id="management-form">
<input id="id_book_set-TOTAL_FORMS" name="book_set-TOTAL_FORMS" type="hidden" value="1" />
<input id="id_book_set-INITIAL_FORMS" name="book_set-INITIAL_FORMS" type="hidden" value="0" />
<input id="id_book_set-MIN_NUM_FORMS" name="book_set-MIN_NUM_FORMS" type="hidden" value="0" />
<input id="id_book_set-MAX_NUM_FORMS" name="book_set-MAX_NUM_FORMS" type="hidden" value="10" />
</div>
<div id="formset">
<div class="formset-item" id="formset-item-0">
<label for="id_book_set-0-title">Title:</label>
<input id="id_book_set-0-title" maxlength="100" name="book_set-0-title" type="text" />
<input type="button" class="add-formset" value="add" />
</div>
</div>
</div>
</div>
<input type="submit" name="submit" value="Submit" class="button">
</form>
В этом куске кода есть блок с
id="formset"
. При клике по кнопке
add должен создаваться блок следующего содержания:
<div class="formset-item" id="formset-item-1">
<label for="id_book_set-1-title">Title:</label>
<input id="id_book_set-1-title" maxlength="100" name="book_set-1-title" type="text" />
<input type="button" class="add-formset" value="add" />
</div>
И измениться значение с 1 на 2 в
<input id="id_book_set-TOTAL_FORMS" name="book_set-TOTAL_FORMS" type="hidden" value="2" />
Так же, максимальное количество полей, которые можно добавить ограничивается значением в
<input id="id_book_set-MAX_NUM_FORMS" name="book_set-MAX_NUM_FORMS" type="hidden" value="10" />
Подскажите решение этой проблемы. Не силен в javascript, смог только написать код, который просто добавляет блоки с соответствующими айдишниками и удаляет их. Но надо, чтобы соблюдался порядок в айдишниках при удалении блоков. Это я не смог сообразить.
В админке Djnago есть реализация этого функционала. Но мои познания javascript не позволяют мне понять код.
Так же нашел в админке, что разработчиками django используется
этот код, как основа. Но как его адаптировать под свои нужды опять же?