我正在使用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 %}
代码工作正常,但是我需要了解流程,以便更改“添加其他”和“删除”链接,并将酥脆应用于动态添加的表单。