обрабатывать динамические вложенные встроенные формы в шаблонах Django - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу добавить родителя и динамически добавить соответствующих детей вместе с ним, и когда я нажимаю (добавить ребенка), он добавляет его к соответствующему родителю.

В настоящее время я использую '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 - ребенок

как управлять этим поведением?

...