Я хочу добавить родителя и динамически добавить соответствующих детей вместе с ним, и когда я нажимаю (добавить ребенка), он добавляет его к соответствующему родителю.
В настоящее время я использую 'django-dynamic-formset'
мой шаблон:
{% load crispy_forms_tags %}
{% load staticfiles %}
<table class="col-md-9" style="margin-left: 10px;">
{{ formset.management_form|crispy }}
{% for form in formset.forms %}
<tr class="formset_row-{{ formset.prefix }}">
{% for field in form.visible_fields %}
<td>
{# Include the hidden fields in the form #}
{% if forloop.first %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% endif %}
{{ field.errors.as_ul }}
{{ field|as_crispy_field }}
</td>
{% endfor %}
</tr>
<!--nested form-->
{% if form.nested %}
{{ form.nested.management_form }}
{{ form.nested.non_form_errors }}
{% for nested_form in form.nested.forms %}
<tr class="{% cycle 'row1' 'row2' %} formset_child-{{ formset.prefix }}">
{% for fields in nested_form.visible_fields %}
<td>
{# Include the hidden fields in the nested_form #}
{% if forloop.first %}
{% for hidden in nested_form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% endif %}
{{ fields.errors.as_ul }}
{{ fields|as_crispy_field }}
</td>
{% endfor %}
</tr>
{% endfor %}
{% endif %}
<!-- end of nested form-->
{% endfor %}
</table>
<br>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="{% static 'mycollections/libraries/django-dynamic-formset/jquery.formset.js' %}"></script>
<script type="text/javascript">
$('.formset_row-{{ formset.prefix }}').formset({
addText: 'add parent',
deleteText: 'remove parent',
prefix: '{{ formset.prefix }}',
});
</script>
<script type="text/javascript">
$('.formset_child-{{ formset.prefix }}').formset({
addText: 'add child',
deleteText: 'remove child',
prefix: '{{ formset.prefix }}',
});
</script>
но предыдущий шаблон добавляет родителя, отделенного от ребенка (он добавляет родителей после каждого другого и добавляет детей после каждого другого отдельно от соответствующего родителя).
например
- родитель 1
- родитель 2
- ребенок
- ребенок
- ребенок
ожидаемое поведение:
- родитель 1
- ребенок
- ребенок
- родитель 2
- ребенок
как управлять этим поведением?