formset函数如何用于django-extra-views?

时间:2019-07-13 06:01:56

标签: django django-views

我正在使用django-extra-views包创建内联表单。我需要一些帮助来理解在使用django-extra-views时在javascript代码中使用的 formset函数的工作方式。如何在表单集中添加“添加其他”和“删除”链接?

我已从Using django-dynamic-formset with CreateWithInlinesView from django-extra-views - multiple formsets获得帮助

在我的views.py中:

class PriceDetailsInline(InlineFormSetFactory):
    model = models.PriceDetails
    form = forms.PriceDetailsForm
    fields = '__all__'
    factory_kwargs = {'extra': 1, 'can_delete': False}


class CreateInvoiceView(LoginRequiredMixin, CreateWithInlinesView):
    model = models.Invoice
    form = forms.InvoiceForm
    inlines = [PriceDetailsInline]
    fields = '__all__'
    template_name = 'app/invoice_form.html'

在我的invoice_form.html中:

    <table>
        {{ form.as_table }}
    </table>
    {% for formset in inlines %}
        <div id="{{ formset.prefix }}">
        {% for subform in formset.forms %}
            <table>
            {{ subform.as_table }}
            </table>
        {% endfor %}
        {{ formset.management_form }}
        </div>
    {% endfor %}

{% block extra_footer_script %}
<script type="text/javascript">
       $(function() {
           {% for formset in inlines %}
           $('div#FormSet{{ formset.prefix }}').formset({
               prefix: '{{ formset.prefix }}',
               formCssClass: 'dynamic-formset{{ forloop.counter }}'
           });
           {% endfor %}
       })
   </script>
{% endblock %}

代码工作正常,但是我需要了解流程,以便更改“添加其他”和“删除”链接,并将酥脆应用于动态添加的表单。

0 个答案:

没有答案